Skip to content

Commit 9b7deca

Browse files
committed
wolfcrypt/test/test.c: fix Aes init/free lifecycle in aes192_test() and aes256_test().
1 parent 2ebc897 commit 9b7deca

1 file changed

Lines changed: 37 additions & 16 deletions

File tree

wolfcrypt/test/test.c

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11888,13 +11888,15 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes192_test(void)
1188811888
#else
1188911889
Aes enc[1];
1189011890
#endif
11891+
int enc_inited = 0;
1189111892
byte cipher[AES_BLOCK_SIZE];
1189211893
#ifdef HAVE_AES_DECRYPT
1189311894
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
1189411895
Aes *dec = NULL;
1189511896
#else
1189611897
Aes dec[1];
1189711898
#endif
11899+
int dec_inited = 0;
1189811900
byte plain[AES_BLOCK_SIZE];
1189911901
#endif
1190011902
#endif /* HAVE_AES_CBC */
@@ -11937,11 +11939,13 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes192_test(void)
1193711939
ret = wc_AesInit(enc, HEAP_HINT, devId);
1193811940
if (ret != 0)
1193911941
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
11942+
enc_inited = 1;
1194011943
#ifdef HAVE_AES_DECRYPT
1194111944
ret = wc_AesInit(dec, HEAP_HINT, devId);
1194211945
if (ret != 0)
1194311946
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
1194411947
#endif
11948+
dec_inited = 1;
1194511949

1194611950
ret = wc_AesSetKey(enc, key, (int) sizeof(key), iv, AES_ENCRYPTION);
1194711951
if (ret != 0)
@@ -11975,19 +11979,25 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes192_test(void)
1197511979
}
1197611980
#endif
1197711981

11978-
wc_AesFree(enc);
11979-
#ifdef HAVE_AES_DECRYPT
11980-
wc_AesFree(dec);
11981-
#endif
11982-
1198311982
out:
1198411983
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
11985-
if (enc)
11984+
if (enc) {
11985+
if (enc_inited)
11986+
wc_AesFree(enc);
1198611987
XFREE(enc, HEAP_HINT, DYNAMIC_TYPE_AES);
11988+
}
1198711989
#ifdef HAVE_AES_DECRYPT
11988-
if (dec)
11990+
if (dec) {
11991+
if (dec_inited)
11992+
wc_AesFree(dec);
1198911993
XFREE(dec, HEAP_HINT, DYNAMIC_TYPE_AES);
11994+
}
1199011995
#endif
11996+
#else /* !WOLFSSL_SMALL_STACK || WOLFSSL_NO_MALLOC */
11997+
if (enc_inited)
11998+
wc_AesFree(enc);
11999+
if (dec_inited)
12000+
wc_AesFree(dec);
1199112001
#endif
1199212002
#endif /* HAVE_AES_CBC */
1199312003

@@ -12004,13 +12014,15 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes256_test(void)
1200412014
#else
1200512015
Aes enc[1];
1200612016
#endif
12017+
int enc_inited = 0;
1200712018
byte cipher[AES_BLOCK_SIZE];
1200812019
#ifdef HAVE_AES_DECRYPT
1200912020
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
1201012021
Aes *dec = NULL;
1201112022
#else
1201212023
Aes dec[1];
1201312024
#endif
12025+
int dec_inited = 0;
1201412026
byte plain[AES_BLOCK_SIZE];
1201512027
#endif
1201612028
#endif /* HAVE_AES_CBC */
@@ -12059,11 +12071,13 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes256_test(void)
1205912071
ret = wc_AesInit(enc, HEAP_HINT, devId);
1206012072
if (ret != 0)
1206112073
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
12074+
enc_inited = 1;
1206212075
#ifdef HAVE_AES_DECRYPT
1206312076
ret = wc_AesInit(dec, HEAP_HINT, devId);
1206412077
if (ret != 0)
1206512078
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
1206612079
#endif
12080+
dec_inited = 1;
1206712081

1206812082
ret = wc_AesSetKey(enc, key, keySz, iv, AES_ENCRYPTION);
1206912083
if (ret != 0)
@@ -12173,21 +12187,28 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes256_test(void)
1217312187
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
1217412188
#endif
1217512189

12176-
wc_AesFree(enc);
12177-
#ifdef HAVE_AES_DECRYPT
12178-
wc_AesFree(dec);
12179-
#endif
12180-
12181-
#endif
12190+
#endif /* DEBUG_VECTOR_REGISTER_ACCESS && WC_AES_C_DYNAMIC_FALLBACK */
1218212191

1218312192
out:
12193+
1218412194
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
12185-
if (enc)
12195+
if (enc) {
12196+
if (enc_inited)
12197+
wc_AesFree(enc);
1218612198
XFREE(enc, HEAP_HINT, DYNAMIC_TYPE_AES);
12199+
}
1218712200
#ifdef HAVE_AES_DECRYPT
12188-
if (dec)
12201+
if (dec) {
12202+
if (dec_inited)
12203+
wc_AesFree(dec);
1218912204
XFREE(dec, HEAP_HINT, DYNAMIC_TYPE_AES);
12205+
}
1219012206
#endif
12207+
#else /* !WOLFSSL_SMALL_STACK || WOLFSSL_NO_MALLOC */
12208+
if (enc_inited)
12209+
wc_AesFree(enc);
12210+
if (dec_inited)
12211+
wc_AesFree(dec);
1219112212
#endif
1219212213
#endif /* HAVE_AES_CBC */
1219312214

@@ -12326,7 +12347,7 @@ static wc_test_ret_t aesgcm_default_test_helper(byte* key, int keySz, byte* iv,
1232612347
wc_AesFree(dec);
1232712348
XFREE(dec, HEAP_HINT, DYNAMIC_TYPE_AES);
1232812349
}
12329-
#else
12350+
#else /* !WOLFSSL_SMALL_STACK || WOLFSSL_NO_MALLOC */
1233012351
if (enc_inited)
1233112352
wc_AesFree(enc);
1233212353
if (dec_inited)

0 commit comments

Comments
 (0)