Skip to content

Commit 920c921

Browse files
committed
JNI: add negative sanity checks for offset and len in jni_sha.c
1 parent 427548f commit 920c921

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

jni/jni_sha.c

+6-6
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ Java_com_wolfssl_wolfcrypt_Sha_native_1update_1internal___3BII(
309309
data = getByteArray(env, data_buffer);
310310
dataSz = getByteArrayLength(env, data_buffer);
311311

312-
if (sha == NULL || data == NULL ||
312+
if (sha == NULL || data == NULL || offset < 0 || len < 0 ||
313313
(word32)(offset + len) > dataSz) {
314314
ret = BAD_FUNC_ARG;
315315
}
@@ -519,7 +519,7 @@ JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha224_native_1update_1interna
519519
data = getByteArray(env, data_buffer);
520520
dataSz = getByteArrayLength(env, data_buffer);
521521

522-
if (sha == NULL || data == NULL ||
522+
if (sha == NULL || data == NULL || offset < 0 || len < 0 ||
523523
(word32)(offset + len) > dataSz) {
524524
ret = BAD_FUNC_ARG;
525525
}
@@ -735,7 +735,7 @@ Java_com_wolfssl_wolfcrypt_Sha256_native_1update_1internal___3BII(
735735
data = getByteArray(env, data_buffer);
736736
dataSz = getByteArrayLength(env, data_buffer);
737737

738-
if (sha == NULL || data == NULL ||
738+
if (sha == NULL || data == NULL || offset < 0 || len < 0 ||
739739
(word32)(offset + len) > dataSz) {
740740
ret = BAD_FUNC_ARG;
741741
}
@@ -930,7 +930,7 @@ Java_com_wolfssl_wolfcrypt_Sha384_native_1update_1internal___3BII(
930930
data = getByteArray(env, data_buffer);
931931
dataSz = getByteArrayLength(env, data_buffer);
932932

933-
if (sha == NULL || data == NULL ||
933+
if (sha == NULL || data == NULL || offset < 0 || len < 0 ||
934934
(word32)(offset + len) > dataSz) {
935935
ret = BAD_FUNC_ARG;
936936
}
@@ -1126,7 +1126,7 @@ Java_com_wolfssl_wolfcrypt_Sha512_native_1update_1internal___3BII(
11261126
data = getByteArray(env, data_buffer);
11271127
dataSz = getByteArrayLength(env, data_buffer);
11281128

1129-
if (sha == NULL || data == NULL ||
1129+
if (sha == NULL || data == NULL || offset < 0 || len < 0 ||
11301130
(word32)(offset + len) > dataSz) {
11311131
ret = BAD_FUNC_ARG;
11321132
}
@@ -1414,7 +1414,7 @@ JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha3_native_1update_1internal_
14141414
data = getByteArray(env, data_buffer);
14151415
dataSz = getByteArrayLength(env, data_buffer);
14161416

1417-
if (sha == NULL || data == NULL ||
1417+
if (sha == NULL || data == NULL || offset < 0 || len < 0 ||
14181418
(word32)(offset + len) > dataSz) {
14191419
ret = BAD_FUNC_ARG;
14201420
}

0 commit comments

Comments
 (0)