aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Bentley <44170157+prbprbprb@users.noreply.github.com>2021-07-30 13:22:40 +0100
committerGitHub <noreply@github.com>2021-07-30 13:22:40 +0100
commitc014ecc27406d3a54fb105b34e42a2d4fe2f4c08 (patch)
treeb9692200f8ab884707dfca0402dfa64c3a79ec96
parent2b56c886a1e5f1bd60bb1f899fbe6237dc15fc9e (diff)
downloadconscrypt-c014ecc27406d3a54fb105b34e42a2d4fe2f4c08.tar.gz
Fix CheckJNI error (#1027)
Don't try to allocate a String in NativeCrypto_SSL_CIPHER_get_kx_name after to_SSL_CIPHER throws a Java exception.
-rw-r--r--common/src/jni/main/cpp/conscrypt/native_crypto.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/common/src/jni/main/cpp/conscrypt/native_crypto.cc b/common/src/jni/main/cpp/conscrypt/native_crypto.cc
index 3d869d7a..db1e8896 100644
--- a/common/src/jni/main/cpp/conscrypt/native_crypto.cc
+++ b/common/src/jni/main/cpp/conscrypt/native_crypto.cc
@@ -9422,11 +9422,12 @@ static jlong NativeCrypto_d2i_SSL_SESSION(JNIEnv* env, jclass, jbyteArray javaBy
static jstring NativeCrypto_SSL_CIPHER_get_kx_name(JNIEnv* env, jclass, jlong cipher_address) {
CHECK_ERROR_QUEUE_ON_RETURN;
- const SSL_CIPHER* cipher = to_SSL_CIPHER(env, cipher_address, true);
- const char* kx_name = nullptr;
-
- kx_name = SSL_CIPHER_get_kx_name(cipher);
+ const SSL_CIPHER* cipher = to_SSL_CIPHER(env, cipher_address, /*throwIfNull=*/true);
+ if (cipher == nullptr) {
+ return nullptr;
+ }
+ const char* kx_name = SSL_CIPHER_get_kx_name(cipher);
return env->NewStringUTF(kx_name);
}