mirror of
https://github.com/openssl/openssl.git
synced 2025-01-18 13:44:20 +08:00
Allow OSSL_PARAM_get_octet_string() to pass a NULL buffer
We may just want to know the number of octets so allow passing a NULL buffer. Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11635)
This commit is contained in:
parent
86dc26baf6
commit
b756626a37
@ -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);
|
||||
|
||||
|
@ -233,7 +233,9 @@ OSSL_PARAM_get_octet_string() retrieves an OCTET string from the parameter
|
||||
pointed to by B<p>.
|
||||
The OCTETs are either stored into B<*val> with a length limit of B<max_len> or,
|
||||
in the case when B<*val> is B<NULL>, memory is allocated and
|
||||
B<max_len> is ignored.
|
||||
B<max_len> is ignored. B<*used_len> is populated with the number of OCTETs
|
||||
stored. If B<val> is NULL then the OCTETS are not stored, but B<*used_len> is
|
||||
still populated.
|
||||
If memory is allocated by this function, it must be freed by the caller.
|
||||
|
||||
OSSL_PARAM_set_octet_string() sets an OCTET string from the parameter
|
||||
|
Loading…
Reference in New Issue
Block a user