mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-02 04:04:39 +02:00
Dynamically allocate buffer in wolfSSL_X509V3_EXT_print
This commit is contained in:
11
src/ssl.c
11
src/ssl.c
@@ -8124,19 +8124,24 @@ int wolfSSL_X509V3_EXT_print(WOLFSSL_BIO *out, WOLFSSL_X509_EXTENSION *ext,
|
|||||||
case ALT_NAMES_OID:
|
case ALT_NAMES_OID:
|
||||||
{
|
{
|
||||||
WOLFSSL_STACK* sk;
|
WOLFSSL_STACK* sk;
|
||||||
char val[sz];
|
char* val;
|
||||||
|
int len;
|
||||||
tmp[0] = '\0'; /* Make sure tmp is null-terminated */
|
tmp[0] = '\0'; /* Make sure tmp is null-terminated */
|
||||||
|
|
||||||
sk = ext->ext_sk;
|
sk = ext->ext_sk;
|
||||||
while (sk != NULL) {
|
while (sk != NULL) {
|
||||||
/* str is GENERAL_NAME for subject alternative name ext */
|
/* str is GENERAL_NAME for subject alternative name ext */
|
||||||
str = sk->data.gn->d.ia5;
|
str = sk->data.gn->d.ia5;
|
||||||
|
len = str->length + 2; /* + 2 for NULL char and "," */
|
||||||
|
val = (char*)XMALLOC(len + indent, NULL,
|
||||||
|
DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
if (sk->next)
|
if (sk->next)
|
||||||
XSNPRINTF(val, sz, "%*s%s, ", indent, "", str->strData);
|
XSNPRINTF(val, len, "%*s%s, ", indent, "", str->strData);
|
||||||
else
|
else
|
||||||
XSNPRINTF(val, sz, "%*s%s", indent, "", str->strData);
|
XSNPRINTF(val, len, "%*s%s", indent, "", str->strData);
|
||||||
|
|
||||||
XSTRNCAT(tmp, val, sz);
|
XSTRNCAT(tmp, val, sz);
|
||||||
|
XFREE(val, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
sk = sk->next;
|
sk = sk->next;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user