JNI: added additional null checks on ReleaseByteArrayElements() calls
parent
7b507fb475
commit
6d29fc5209
|
|
@ -785,7 +785,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLContext_memrestoreCertCache
|
|||
ret = wolfSSL_CTX_memrestore_cert_cache(ctx, buff, buffSz);
|
||||
}
|
||||
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, mem, (jbyte*)buff, JNI_ABORT);
|
||||
if (buff != NULL) {
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, mem, (jbyte*)buff, JNI_ABORT);
|
||||
}
|
||||
|
||||
return (jint)ret;
|
||||
#else
|
||||
|
|
@ -888,7 +890,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLContext_loadVerifyBuffer
|
|||
ret = wolfSSL_CTX_load_verify_buffer(ctx, buff, buffSz, format);
|
||||
}
|
||||
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, in, (jbyte*)buff, JNI_ABORT);
|
||||
if (buff != NULL) {
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, in, (jbyte*)buff, JNI_ABORT);
|
||||
}
|
||||
|
||||
return (jint)ret;
|
||||
}
|
||||
|
|
@ -915,7 +919,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLContext_useCertificateBuffer
|
|||
ret = wolfSSL_CTX_use_certificate_buffer(ctx, buff, buffSz, format);
|
||||
}
|
||||
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, in, (jbyte*)buff, JNI_ABORT);
|
||||
if (buff != NULL) {
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, in, (jbyte*)buff, JNI_ABORT);
|
||||
}
|
||||
|
||||
return (jint)ret;
|
||||
}
|
||||
|
|
@ -952,7 +958,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLContext_usePrivateKeyBuffer
|
|||
XMEMSET(buff, 0, buffSz);
|
||||
#endif
|
||||
}
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, in, (jbyte*)buff, JNI_ABORT);
|
||||
if (buff != NULL) {
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, in, (jbyte*)buff, JNI_ABORT);
|
||||
}
|
||||
|
||||
return (jint)ret;
|
||||
}
|
||||
|
|
@ -978,7 +986,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLContext_useCertificateChainBuffer
|
|||
ret = wolfSSL_CTX_use_certificate_chain_buffer(ctx, buff, buffSz);
|
||||
}
|
||||
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, in, (jbyte*)buff, JNI_ABORT);
|
||||
if (buff != NULL) {
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, in, (jbyte*)buff, JNI_ABORT);
|
||||
}
|
||||
|
||||
return (jint)ret;
|
||||
}
|
||||
|
|
@ -1005,7 +1015,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLContext_useCertificateChainBuffer
|
|||
ctx, buff, buffSz, format);
|
||||
}
|
||||
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, in, (jbyte*)buff, JNI_ABORT);
|
||||
if (buff != NULL) {
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, in, (jbyte*)buff, JNI_ABORT);
|
||||
}
|
||||
|
||||
return (jint)ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1276,6 +1276,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLSession_write__J_3BIII
|
|||
(*jenv)->ExceptionClear(jenv);
|
||||
return SSL_FAILURE;
|
||||
}
|
||||
if (data == NULL) {
|
||||
return SSL_FAILURE;
|
||||
}
|
||||
|
||||
ret = SSLWriteNonblockingWithSelectPoll(ssl, data + offset,
|
||||
(int)length, (int)timeout);
|
||||
|
|
@ -1495,6 +1498,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLSession_read__J_3BIII
|
|||
(*jenv)->ExceptionClear(jenv);
|
||||
return SSL_FAILURE;
|
||||
}
|
||||
if (data == NULL) {
|
||||
return SSL_FAILURE;
|
||||
}
|
||||
|
||||
size = SSLReadNonblockingWithSelectPoll(ssl, data + offset,
|
||||
(int)length, (int)timeout);
|
||||
|
|
@ -2422,7 +2428,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLSession_setServerID
|
|||
ret = wolfSSL_SetServerID(ssl, idBuf, idBufSz, (int)newSess);
|
||||
}
|
||||
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, id, (jbyte*)idBuf, JNI_ABORT);
|
||||
if (idBuf != NULL) {
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, id, (jbyte*)idBuf, JNI_ABORT);
|
||||
}
|
||||
|
||||
return ret;
|
||||
#else
|
||||
|
|
@ -2804,7 +2812,7 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLSession_sendHrrCookie
|
|||
|
||||
ret = wolfSSL_send_hrr_cookie(ssl, secretBuf, secretSz);
|
||||
|
||||
if (secret != NULL) {
|
||||
if (secret != NULL && secretBuf != NULL) {
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, secret,
|
||||
(jbyte*)secretBuf, JNI_ABORT);
|
||||
}
|
||||
|
|
@ -3770,7 +3778,9 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLSession_useCertificateChainBuffer
|
|||
ssl, buff, buffSz, format);
|
||||
}
|
||||
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, in, (jbyte*)buff, JNI_ABORT);
|
||||
if (buff != NULL) {
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, in, (jbyte*)buff, JNI_ABORT);
|
||||
}
|
||||
|
||||
return (jint)ret;
|
||||
}
|
||||
|
|
@ -5206,7 +5216,7 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLSession_useSNI
|
|||
WOLFSSL* ssl = (WOLFSSL*)(uintptr_t)sslPtr;
|
||||
(void)jcl;
|
||||
|
||||
if (jenv == NULL || ssl == NULL) {
|
||||
if (jenv == NULL || ssl == NULL || data == NULL) {
|
||||
return BAD_FUNC_ARG;
|
||||
}
|
||||
|
||||
|
|
@ -5221,7 +5231,10 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLSession_useSNI
|
|||
ret = wolfSSL_UseSNI(ssl, (byte)type, dataBuf, (word16)dataSz);
|
||||
}
|
||||
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, data, (jbyte*)dataBuf, JNI_ABORT);
|
||||
if (dataBuf != NULL) {
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, data, (jbyte*)dataBuf,
|
||||
JNI_ABORT);
|
||||
}
|
||||
|
||||
#else
|
||||
ret = NOT_COMPILED_IN;
|
||||
|
|
@ -5404,8 +5417,10 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLSession_setSessionTicket
|
|||
else {
|
||||
ret = BAD_FUNC_ARG;
|
||||
}
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, dataBuf,
|
||||
(jbyte*)data, JNI_ABORT);
|
||||
if (data != NULL) {
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, dataBuf,
|
||||
(jbyte*)data, JNI_ABORT);
|
||||
}
|
||||
(void)jcl;
|
||||
#else
|
||||
(void)jenv;
|
||||
|
|
@ -5473,8 +5488,10 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSLSession_sslSetAlpnProtos
|
|||
#endif
|
||||
}
|
||||
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, alpnProtos,
|
||||
(jbyte*)buff, JNI_ABORT);
|
||||
if (buff != NULL) {
|
||||
(*jenv)->ReleaseByteArrayElements(jenv, alpnProtos,
|
||||
(jbyte*)buff, JNI_ABORT);
|
||||
}
|
||||
#else
|
||||
(void)jenv;
|
||||
(void)jcl;
|
||||
|
|
|
|||
Loading…
Reference in New Issue