Allow OSSL_PARAM_get_octet_string() to pass a NULL buffer
[openssl.git] / crypto / params.c
index 32161d0533884c34cc4cf55702fc4ac96cb8dc9b..06ae1bc44f37b98276c6a87063b80c41391a4ca0 100644 (file)
@@ -780,7 +780,7 @@ static int get_string_internal(const OSSL_PARAM *p, void **val, size_t max_len,
 {
     size_t sz;
 
-    if (val == NULL || p == NULL || p->data_type != type)
+    if ((val == NULL && used_len == NULL) || p == NULL || p->data_type != type)
         return 0;
 
     sz = p->data_size;
@@ -793,6 +793,9 @@ static int get_string_internal(const OSSL_PARAM *p, void **val, size_t max_len,
     if (p->data == NULL)
         return 0;
 
+    if (val == NULL)
+        return 1;
+
     if (*val == NULL) {
         char *const q = OPENSSL_malloc(sz);