Skip to content

Commit 4f60a88

Browse files
authored
Merge pull request #70 from JacobBarthelmeh/memory
use '0' when releasing array
2 parents fef8685 + ebfe323 commit 4f60a88

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

native/com_wolfssl_WolfSSLSession.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,8 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLSession_write(JNIEnv* jenv,
611611
/* get session mutex from SSL app data */
612612
jniSessLock = (wolfSSL_Mutex*)wolfSSL_get_app_data(ssl);
613613
if (jniSessLock == NULL) {
614+
(*jenv)->ReleaseByteArrayElements(jenv, raw, (jbyte*)data,
615+
JNI_ABORT);
614616
return SSL_FAILURE;
615617
}
616618

@@ -688,6 +690,8 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLSession_read(JNIEnv* jenv,
688690
/* get session mutex from SSL app data */
689691
jniSessLock = (wolfSSL_Mutex*)wolfSSL_get_app_data(ssl);
690692
if (jniSessLock == NULL) {
693+
(*jenv)->ReleaseByteArrayElements(jenv, raw, (jbyte*)data,
694+
JNI_ABORT);
691695
return WOLFSSL_FAILURE;
692696
}
693697

@@ -730,7 +734,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLSession_read(JNIEnv* jenv,
730734

731735
} while (err == SSL_ERROR_WANT_WRITE || err == SSL_ERROR_WANT_READ);
732736

733-
(*jenv)->ReleaseByteArrayElements(jenv, raw, (jbyte*)data, JNI_COMMIT);
737+
/* JNI_COMMIT commits the data but does not free the local array
738+
* 0 is used here to both commit and free */
739+
(*jenv)->ReleaseByteArrayElements(jenv, raw, (jbyte*)data, 0);
734740
}
735741

736742
return size;

0 commit comments

Comments
 (0)