JNI: free internal Aes struct in Gmac use after done (F-1956)

pull/210/head
Chris Conlon 2026-04-06 10:14:58 -06:00
parent db2c811c67
commit 971a02bf3c
1 changed files with 10 additions and 6 deletions

View File

@ -226,6 +226,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_wolfcrypt_AesGmac_wc_1Gmac(
authIn = getByteArray(env, authIn_object);
authTag = getByteArray(env, authTag_object);
/* Initialize GMAC structure */
XMEMSET(&gmac, 0, sizeof(Gmac));
if (key == NULL || iv == NULL || authIn == NULL || authTag == NULL) {
ret = BAD_FUNC_ARG;
}
@ -236,9 +239,6 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_wolfcrypt_AesGmac_wc_1Gmac(
authInSz = getByteArrayLength(env, authIn_object);
authTagSz = getByteArrayLength(env, authTag_object);
/* Initialize GMAC structure */
XMEMSET(&gmac, 0, sizeof(Gmac));
/* Set the key */
ret = wc_GmacSetKey(&gmac, key, keySz);
@ -274,6 +274,8 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_wolfcrypt_AesGmac_wc_1Gmac(
releaseByteArray(env, authIn_object, authIn, JNI_ABORT);
releaseByteArray(env, authTag_object, authTag, JNI_ABORT);
wc_AesFree(&gmac.aes);
return ret;
#else
throwNotCompiledInException(env);
@ -299,6 +301,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_wolfcrypt_AesGmac_wc_1GmacVerify(
authIn = getByteArray(env, authIn_object);
authTag = getByteArray(env, authTag_object);
/* Initialize GMAC structure */
XMEMSET(&gmac, 0, sizeof(Gmac));
if (key == NULL || iv == NULL || authIn == NULL || authTag == NULL) {
ret = BAD_FUNC_ARG;
}
@ -309,9 +314,6 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_wolfcrypt_AesGmac_wc_1GmacVerify(
authInSz = getByteArrayLength(env, authIn_object);
authTagSz = getByteArrayLength(env, authTag_object);
/* Initialize GMAC structure */
XMEMSET(&gmac, 0, sizeof(Gmac));
/* Set the key */
ret = wc_GmacSetKey(&gmac, key, keySz);
@ -347,6 +349,8 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_wolfcrypt_AesGmac_wc_1GmacVerify(
releaseByteArray(env, authIn_object, authIn, JNI_ABORT);
releaseByteArray(env, authTag_object, authTag, JNI_ABORT);
wc_AesFree(&gmac.aes);
return ret;
#else
throwNotCompiledInException(env);