Allow setting a NULL pointer in a params structure
authorMatt Caswell <matt@openssl.org>
Fri, 11 Oct 2019 16:42:19 +0000 (17:42 +0100)
committerMatt Caswell <matt@openssl.org>
Thu, 14 Nov 2019 09:29:21 +0000 (09:29 +0000)
Sometimes it is valid to send a NULL pointer in params.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10152)

crypto/params.c

index 0cd13e3b81d5d15511b2b6de4f7c774112f93ef8..58a4710e47828137d7dbdad18b6b8195d5f5c697 100644 (file)
@@ -892,9 +892,8 @@ int OSSL_PARAM_set_utf8_ptr(OSSL_PARAM *p, const char *val)
     if (p == NULL)
         return 0;
     p->return_size = 0;
-    if (val == NULL)
-        return 0;
-    return set_ptr_internal(p, val, OSSL_PARAM_UTF8_PTR, strlen(val) + 1);
+    return set_ptr_internal(p, val, OSSL_PARAM_UTF8_PTR,
+                            val == NULL ? 0 : strlen(val) + 1);
 }
 
 int OSSL_PARAM_set_octet_ptr(OSSL_PARAM *p, const void *val,
@@ -903,8 +902,6 @@ int OSSL_PARAM_set_octet_ptr(OSSL_PARAM *p, const void *val,
     if (p == NULL)
         return 0;
     p->return_size = 0;
-    if (val == NULL)
-        return 0;
     return set_ptr_internal(p, val, OSSL_PARAM_OCTET_PTR, used_len);
 }