@@ -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