From 9ff25439253ee5749eed0faae6305967ea57b49c Mon Sep 17 00:00:00 2001 From: Alexander Scheel Date: Thu, 2 Jul 2020 17:17:03 -0400 Subject: [PATCH] Safely handle NULL pointers in PR.c code Signed-off-by: Alexander Scheel --- org/mozilla/jss/nss/PR.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/org/mozilla/jss/nss/PR.c b/org/mozilla/jss/nss/PR.c index 9f9fac734..d10722366 100644 --- a/org/mozilla/jss/nss/PR.c +++ b/org/mozilla/jss/nss/PR.c @@ -104,7 +104,7 @@ Java_org_mozilla_jss_nss_PR_Close(JNIEnv *env, jclass clazz, jobject fd, jboolea return PR_SUCCESS; } - if (JSS_PR_getPRFileDesc(env, fd, &real_fd) != PR_SUCCESS) { + if (JSS_PR_getPRFileDesc(env, fd, &real_fd) != PR_SUCCESS || real_fd == NULL) { return PR_FAILURE; } @@ -167,7 +167,7 @@ Java_org_mozilla_jss_nss_PR_Shutdown(JNIEnv *env, jclass clazz, jobject fd, return PR_SUCCESS; } - if (JSS_PR_getPRFileDesc(env, fd, &real_fd) != PR_SUCCESS) { + if (JSS_PR_getPRFileDesc(env, fd, &real_fd) != PR_SUCCESS || real_fd == NULL) { return PR_FAILURE; } @@ -189,7 +189,7 @@ Java_org_mozilla_jss_nss_PR_Read(JNIEnv *env, jclass clazz, jobject fd, PR_ASSERT(env != NULL && fd != NULL && amount >= 0); PR_SetError(0, 0); - if (JSS_PR_getPRFileDesc(env, fd, &real_fd) != PR_SUCCESS) { + if (JSS_PR_getPRFileDesc(env, fd, &real_fd) != PR_SUCCESS || real_fd == NULL) { return NULL; } @@ -257,7 +257,7 @@ Java_org_mozilla_jss_nss_PR_Write(JNIEnv *env, jclass clazz, jobject fd, PR_ASSERT(env != NULL && fd != NULL); PR_SetError(0, 0); - if (JSS_PR_getPRFileDesc(env, fd, &real_fd) != PR_SUCCESS) { + if (JSS_PR_getPRFileDesc(env, fd, &real_fd) != PR_SUCCESS || real_fd == NULL) { return 0; } @@ -299,7 +299,7 @@ Java_org_mozilla_jss_nss_PR_Recv(JNIEnv *env, jclass clazz, jobject fd, timeout >= 0 && timeout <= UINT32_MAX); PR_SetError(0, 0); - if (JSS_PR_getPRFileDesc(env, fd, &real_fd) != PR_SUCCESS) { + if (JSS_PR_getPRFileDesc(env, fd, &real_fd) != PR_SUCCESS || real_fd == NULL) { return NULL; } @@ -334,7 +334,7 @@ Java_org_mozilla_jss_nss_PR_Send(JNIEnv *env, jclass clazz, jobject fd, timeout >= 0 && timeout <= UINT32_MAX); PR_SetError(0, 0); - if (JSS_PR_getPRFileDesc(env, fd, &real_fd) != PR_SUCCESS) { + if (JSS_PR_getPRFileDesc(env, fd, &real_fd) != PR_SUCCESS || real_fd == NULL) { return 0; }