Skip to content

Commit 82b3173

Browse files
committed
Initialise return values to an error
Initialising the return values to and error is best practice and makes the library more robust. No new error was introduced because we are running out of error codes and we shouldn't be wasting them. The error MBEDTLS_ERR_GENERIC_ERROR seemed the most generic and therefore it seemed the best choice to uniformly initialise return values.
1 parent 9b3a897 commit 82b3173

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+322
-279
lines changed

library/aes.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#include "mbedtls/aes.h"
3939
#include "mbedtls/platform.h"
4040
#include "mbedtls/platform_util.h"
41+
#include "mbedtls/error.h"
4142
#if defined(MBEDTLS_PADLOCK_C)
4243
#include "mbedtls/padlock.h"
4344
#endif
@@ -766,7 +767,7 @@ int mbedtls_aes_xts_setkey_enc( mbedtls_aes_xts_context *ctx,
766767
const unsigned char *key,
767768
unsigned int keybits)
768769
{
769-
int ret;
770+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
770771
const unsigned char *key1, *key2;
771772
unsigned int key1bits, key2bits;
772773

@@ -791,7 +792,7 @@ int mbedtls_aes_xts_setkey_dec( mbedtls_aes_xts_context *ctx,
791792
const unsigned char *key,
792793
unsigned int keybits)
793794
{
794-
int ret;
795+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
795796
const unsigned char *key1, *key2;
796797
unsigned int key1bits, key2bits;
797798

@@ -1175,7 +1176,7 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx,
11751176
const unsigned char *input,
11761177
unsigned char *output )
11771178
{
1178-
int ret;
1179+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
11791180
size_t blocks = length / 16;
11801181
size_t leftover = length % 16;
11811182
unsigned char tweak[16];

library/asn1parse.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
#include "mbedtls/asn1.h"
3131
#include "mbedtls/platform_util.h"
32+
#include "mbedtls/error.h"
3233

3334
#include <string.h>
3435

@@ -124,7 +125,7 @@ int mbedtls_asn1_get_bool( unsigned char **p,
124125
const unsigned char *end,
125126
int *val )
126127
{
127-
int ret;
128+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
128129
size_t len;
129130

130131
if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_BOOLEAN ) ) != 0 )
@@ -143,7 +144,7 @@ int mbedtls_asn1_get_int( unsigned char **p,
143144
const unsigned char *end,
144145
int *val )
145146
{
146-
int ret;
147+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
147148
size_t len;
148149

149150
if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_INTEGER ) ) != 0 )
@@ -185,7 +186,7 @@ int mbedtls_asn1_get_mpi( unsigned char **p,
185186
const unsigned char *end,
186187
mbedtls_mpi *X )
187188
{
188-
int ret;
189+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
189190
size_t len;
190191

191192
if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_INTEGER ) ) != 0 )
@@ -202,7 +203,7 @@ int mbedtls_asn1_get_mpi( unsigned char **p,
202203
int mbedtls_asn1_get_bitstring( unsigned char **p, const unsigned char *end,
203204
mbedtls_asn1_bitstring *bs)
204205
{
205-
int ret;
206+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
206207

207208
/* Certificate type is a single byte bitstring */
208209
if( ( ret = mbedtls_asn1_get_tag( p, end, &bs->len, MBEDTLS_ASN1_BIT_STRING ) ) != 0 )
@@ -235,7 +236,7 @@ int mbedtls_asn1_get_bitstring( unsigned char **p, const unsigned char *end,
235236
int mbedtls_asn1_get_bitstring_null( unsigned char **p, const unsigned char *end,
236237
size_t *len )
237238
{
238-
int ret;
239+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
239240

240241
if( ( ret = mbedtls_asn1_get_tag( p, end, len, MBEDTLS_ASN1_BIT_STRING ) ) != 0 )
241242
return( ret );
@@ -261,7 +262,7 @@ int mbedtls_asn1_get_sequence_of( unsigned char **p,
261262
mbedtls_asn1_sequence *cur,
262263
int tag)
263264
{
264-
int ret;
265+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
265266
size_t len;
266267
mbedtls_asn1_buf *buf;
267268

@@ -310,7 +311,7 @@ int mbedtls_asn1_get_alg( unsigned char **p,
310311
const unsigned char *end,
311312
mbedtls_asn1_buf *alg, mbedtls_asn1_buf *params )
312313
{
313-
int ret;
314+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
314315
size_t len;
315316

316317
if( ( ret = mbedtls_asn1_get_tag( p, end, &len,
@@ -354,7 +355,7 @@ int mbedtls_asn1_get_alg_null( unsigned char **p,
354355
const unsigned char *end,
355356
mbedtls_asn1_buf *alg )
356357
{
357-
int ret;
358+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
358359
mbedtls_asn1_buf params;
359360

360361
memset( &params, 0, sizeof(mbedtls_asn1_buf) );

library/asn1write.c

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#if defined(MBEDTLS_ASN1_WRITE_C)
2929

3030
#include "mbedtls/asn1write.h"
31+
#include "mbedtls/error.h"
3132

3233
#include <string.h>
3334

@@ -131,7 +132,7 @@ int mbedtls_asn1_write_raw_buffer( unsigned char **p, unsigned char *start,
131132
#if defined(MBEDTLS_BIGNUM_C)
132133
int mbedtls_asn1_write_mpi( unsigned char **p, unsigned char *start, const mbedtls_mpi *X )
133134
{
134-
int ret;
135+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
135136
size_t len = 0;
136137

137138
// Write the MPI
@@ -168,7 +169,7 @@ int mbedtls_asn1_write_mpi( unsigned char **p, unsigned char *start, const mbedt
168169

169170
int mbedtls_asn1_write_null( unsigned char **p, unsigned char *start )
170171
{
171-
int ret;
172+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
172173
size_t len = 0;
173174

174175
// Write NULL
@@ -182,7 +183,7 @@ int mbedtls_asn1_write_null( unsigned char **p, unsigned char *start )
182183
int mbedtls_asn1_write_oid( unsigned char **p, unsigned char *start,
183184
const char *oid, size_t oid_len )
184185
{
185-
int ret;
186+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
186187
size_t len = 0;
187188

188189
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start,
@@ -197,7 +198,7 @@ int mbedtls_asn1_write_algorithm_identifier( unsigned char **p, unsigned char *s
197198
const char *oid, size_t oid_len,
198199
size_t par_len )
199200
{
200-
int ret;
201+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
201202
size_t len = 0;
202203

203204
if( par_len == 0 )
@@ -216,7 +217,7 @@ int mbedtls_asn1_write_algorithm_identifier( unsigned char **p, unsigned char *s
216217

217218
int mbedtls_asn1_write_bool( unsigned char **p, unsigned char *start, int boolean )
218219
{
219-
int ret;
220+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
220221
size_t len = 0;
221222

222223
if( *p - start < 1 )
@@ -233,7 +234,7 @@ int mbedtls_asn1_write_bool( unsigned char **p, unsigned char *start, int boolea
233234

234235
int mbedtls_asn1_write_int( unsigned char **p, unsigned char *start, int val )
235236
{
236-
int ret;
237+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
237238
size_t len = 0;
238239

239240
do
@@ -263,7 +264,7 @@ int mbedtls_asn1_write_int( unsigned char **p, unsigned char *start, int val )
263264
int mbedtls_asn1_write_tagged_string( unsigned char **p, unsigned char *start, int tag,
264265
const char *text, size_t text_len )
265266
{
266-
int ret;
267+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
267268
size_t len = 0;
268269

269270
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start,
@@ -339,7 +340,7 @@ int mbedtls_asn1_write_named_bitstring( unsigned char **p,
339340
int mbedtls_asn1_write_bitstring( unsigned char **p, unsigned char *start,
340341
const unsigned char *buf, size_t bits )
341342
{
342-
int ret;
343+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
343344
size_t len = 0;
344345
size_t unused_bits, byte_len;
345346

@@ -372,7 +373,7 @@ int mbedtls_asn1_write_bitstring( unsigned char **p, unsigned char *start,
372373
int mbedtls_asn1_write_octet_string( unsigned char **p, unsigned char *start,
373374
const unsigned char *buf, size_t size )
374375
{
375-
int ret;
376+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
376377
size_t len = 0;
377378

378379
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start, buf, size ) );

library/bignum.c

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
#include "mbedtls/bignum.h"
4747
#include "mbedtls/bn_mul.h"
4848
#include "mbedtls/platform_util.h"
49+
#include "mbedtls/error.h"
4950

5051
#include <string.h>
5152

@@ -314,7 +315,7 @@ int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, mbedtls_mpi *Y, unsigned char sw
314315
*/
315316
int mbedtls_mpi_lset( mbedtls_mpi *X, mbedtls_mpi_sint z )
316317
{
317-
int ret;
318+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
318319
MPI_VALIDATE_RET( X != NULL );
319320

320321
MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, 1 ) );
@@ -457,7 +458,7 @@ static int mpi_get_digit( mbedtls_mpi_uint *d, int radix, char c )
457458
*/
458459
int mbedtls_mpi_read_string( mbedtls_mpi *X, int radix, const char *s )
459460
{
460-
int ret;
461+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
461462
size_t i, j, slen, n;
462463
mbedtls_mpi_uint d;
463464
mbedtls_mpi T;
@@ -532,7 +533,7 @@ int mbedtls_mpi_read_string( mbedtls_mpi *X, int radix, const char *s )
532533
static int mpi_write_hlp( mbedtls_mpi *X, int radix,
533534
char **p, const size_t buflen )
534535
{
535-
int ret;
536+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
536537
mbedtls_mpi_uint r;
537538
size_t length = 0;
538539
char *p_end = *p + buflen;
@@ -697,7 +698,7 @@ int mbedtls_mpi_read_file( mbedtls_mpi *X, int radix, FILE *fin )
697698
*/
698699
int mbedtls_mpi_write_file( const char *p, const mbedtls_mpi *X, int radix, FILE *fout )
699700
{
700-
int ret;
701+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
701702
size_t n, slen, plen;
702703
/*
703704
* Buffer should have space for (short) label and decimal formatted MPI,
@@ -832,7 +833,7 @@ static void mpi_bigendian_to_host( mbedtls_mpi_uint * const p, size_t limbs )
832833
int mbedtls_mpi_read_binary_le( mbedtls_mpi *X,
833834
const unsigned char *buf, size_t buflen )
834835
{
835-
int ret;
836+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
836837
size_t i;
837838
size_t const limbs = CHARS_TO_LIMBS( buflen );
838839

@@ -864,7 +865,7 @@ int mbedtls_mpi_read_binary_le( mbedtls_mpi *X,
864865
*/
865866
int mbedtls_mpi_read_binary( mbedtls_mpi *X, const unsigned char *buf, size_t buflen )
866867
{
867-
int ret;
868+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
868869
size_t const limbs = CHARS_TO_LIMBS( buflen );
869870
size_t const overhead = ( limbs * ciL ) - buflen;
870871
unsigned char *Xp;
@@ -991,7 +992,7 @@ int mbedtls_mpi_write_binary( const mbedtls_mpi *X,
991992
*/
992993
int mbedtls_mpi_shift_l( mbedtls_mpi *X, size_t count )
993994
{
994-
int ret;
995+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
995996
size_t i, v0, t1;
996997
mbedtls_mpi_uint r0 = 0, r1;
997998
MPI_VALIDATE_RET( X != NULL );
@@ -1170,7 +1171,7 @@ int mbedtls_mpi_cmp_int( const mbedtls_mpi *X, mbedtls_mpi_sint z )
11701171
*/
11711172
int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B )
11721173
{
1173-
int ret;
1174+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
11741175
size_t i, j;
11751176
mbedtls_mpi_uint *o, *p, c, tmp;
11761177
MPI_VALIDATE_RET( X != NULL );
@@ -1251,7 +1252,7 @@ static void mpi_sub_hlp( size_t n, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d )
12511252
int mbedtls_mpi_sub_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B )
12521253
{
12531254
mbedtls_mpi TB;
1254-
int ret;
1255+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
12551256
size_t n;
12561257
MPI_VALIDATE_RET( X != NULL );
12571258
MPI_VALIDATE_RET( A != NULL );
@@ -1474,7 +1475,7 @@ void mpi_mul_hlp( size_t i, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d, mbedtls_mp
14741475
*/
14751476
int mbedtls_mpi_mul_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B )
14761477
{
1477-
int ret;
1478+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
14781479
size_t i, j;
14791480
mbedtls_mpi TA, TB;
14801481
MPI_VALIDATE_RET( X != NULL );
@@ -1629,7 +1630,7 @@ static mbedtls_mpi_uint mbedtls_int_div_int( mbedtls_mpi_uint u1,
16291630
int mbedtls_mpi_div_mpi( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A,
16301631
const mbedtls_mpi *B )
16311632
{
1632-
int ret;
1633+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
16331634
size_t i, n, t, k;
16341635
mbedtls_mpi X, Y, Z, T1, T2;
16351636
mbedtls_mpi_uint TP2[3];
@@ -1775,7 +1776,7 @@ int mbedtls_mpi_div_int( mbedtls_mpi *Q, mbedtls_mpi *R,
17751776
*/
17761777
int mbedtls_mpi_mod_mpi( mbedtls_mpi *R, const mbedtls_mpi *A, const mbedtls_mpi *B )
17771778
{
1778-
int ret;
1779+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
17791780
MPI_VALIDATE_RET( R != NULL );
17801781
MPI_VALIDATE_RET( A != NULL );
17811782
MPI_VALIDATE_RET( B != NULL );
@@ -1937,7 +1938,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A,
19371938
const mbedtls_mpi *E, const mbedtls_mpi *N,
19381939
mbedtls_mpi *_RR )
19391940
{
1940-
int ret;
1941+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
19411942
size_t wbits, wsize, one = 1;
19421943
size_t i, j, nblimbs;
19431944
size_t bufsize, nbits;
@@ -2152,7 +2153,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A,
21522153
*/
21532154
int mbedtls_mpi_gcd( mbedtls_mpi *G, const mbedtls_mpi *A, const mbedtls_mpi *B )
21542155
{
2155-
int ret;
2156+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
21562157
size_t lz, lzt;
21572158
mbedtls_mpi TA, TB;
21582159

@@ -2214,7 +2215,7 @@ int mbedtls_mpi_fill_random( mbedtls_mpi *X, size_t size,
22142215
int (*f_rng)(void *, unsigned char *, size_t),
22152216
void *p_rng )
22162217
{
2217-
int ret;
2218+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
22182219
size_t const limbs = CHARS_TO_LIMBS( size );
22192220
size_t const overhead = ( limbs * ciL ) - size;
22202221
unsigned char *Xp;
@@ -2245,7 +2246,7 @@ int mbedtls_mpi_fill_random( mbedtls_mpi *X, size_t size,
22452246
*/
22462247
int mbedtls_mpi_inv_mod( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *N )
22472248
{
2248-
int ret;
2249+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
22492250
mbedtls_mpi G, TA, TU, U1, U2, TB, TV, V1, V2;
22502251
MPI_VALIDATE_RET( X != NULL );
22512252
MPI_VALIDATE_RET( A != NULL );
@@ -2498,7 +2499,7 @@ int mbedtls_mpi_is_prime_ext( const mbedtls_mpi *X, int rounds,
24982499
int (*f_rng)(void *, unsigned char *, size_t),
24992500
void *p_rng )
25002501
{
2501-
int ret;
2502+
int ret = MBEDTLS_ERR_GENERIC_ERROR;
25022503
mbedtls_mpi XX;
25032504
MPI_VALIDATE_RET( X != NULL );
25042505
MPI_VALIDATE_RET( f_rng != NULL );

0 commit comments

Comments
 (0)