]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix potential NULL dereference in OSSL_PARAM_get_utf8_string()
authorTomas Mraz <tomas@openssl.org>
Mon, 19 Apr 2021 14:02:16 +0000 (16:02 +0200)
committerTomas Mraz <tomas@openssl.org>
Thu, 22 Apr 2021 14:46:20 +0000 (16:46 +0200)
Fixes Coverity ID 1476283

Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14928)

crypto/params.c
test/evp_extra_test2.c

index 50e900a406ed0f05aaa03e8f9183fb9a9ce62fed..d9743633b07d5911dd42d6ab83e1e6e533463821 100644 (file)
@@ -1128,11 +1128,13 @@ int OSSL_PARAM_get_utf8_string(const OSSL_PARAM *p, char **val, size_t max_len)
      */
     size_t data_length = p->data_size;
 
+    if (ret == 0)
+        return 0;
     if (data_length >= max_len)
         data_length = OPENSSL_strnlen(p->data, data_length);
     if (data_length >= max_len)
         return 0;            /* No space for a terminating NUL byte */
-    ((char *)*val)[data_length] = '\0';
+    (*val)[data_length] = '\0';
 
     return ret;
 }
index 358ac6053a3c37ad117025bfbef804d98c8502ce..6d5303ab9dd5d7d18644c080fb0ce9042ca6307b 100644 (file)
@@ -566,7 +566,7 @@ static int do_check_utf8_str(OSSL_PARAM params[], const char *key,
                              const char *expected)
 {
     OSSL_PARAM *p;
-    char *bufp = 0;
+    char *bufp = NULL;
     int ret;
 
     ret = TEST_ptr(p = OSSL_PARAM_locate(params, key))