Skip to content

Commit ed4774f

Browse files
committed
Allocate WOLFSSL_X509_NAME with heap hint.
1 parent 048083c commit ed4774f

4 files changed

Lines changed: 16 additions & 11 deletions

File tree

src/internal.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27382,7 +27382,7 @@ static int HashSkeData(WOLFSSL* ssl, enum wc_HashType hashType,
2738227382
ret = GetName(cert, SUBJECT, dnSz);
2738327383

2738427384
if (ret == 0) {
27385-
if ((name = wolfSSL_X509_NAME_new()) == NULL)
27385+
if ((name = wolfSSL_X509_NAME_new_ex(cert->heap)) == NULL)
2738627386
ret = MEMORY_ERROR;
2738727387
}
2738827388

src/x509.c

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9477,28 +9477,32 @@ WOLF_STACK_OF(WOLFSSL_X509)* wolfSSL_X509_chain_up_ref(
94779477
{
94789478
WOLFSSL_ENTER("wolfSSL_X509_NAME_free");
94799479
FreeX509Name(name);
9480-
XFREE(name, NULL, DYNAMIC_TYPE_X509);
9480+
XFREE(name, name->heap, DYNAMIC_TYPE_X509);
94819481
}
94829482

94839483

94849484
/* Malloc's a new WOLFSSL_X509_NAME structure
94859485
*
94869486
* returns NULL on failure, otherwise returns a new structure.
94879487
*/
9488-
WOLFSSL_X509_NAME* wolfSSL_X509_NAME_new(void)
9488+
WOLFSSL_X509_NAME* wolfSSL_X509_NAME_new_ex(void *heap)
94899489
{
94909490
WOLFSSL_X509_NAME* name;
94919491

9492-
WOLFSSL_ENTER("wolfSSL_X509_NAME_new");
9492+
WOLFSSL_ENTER("wolfSSL_X509_NAME_new_ex");
94939493

9494-
name = (WOLFSSL_X509_NAME*)XMALLOC(sizeof(WOLFSSL_X509_NAME), NULL,
9494+
name = (WOLFSSL_X509_NAME*)XMALLOC(sizeof(WOLFSSL_X509_NAME), heap,
94959495
DYNAMIC_TYPE_X509);
94969496
if (name != NULL) {
9497-
InitX509Name(name, 1, NULL);
9497+
InitX509Name(name, 1, heap);
94989498
}
94999499
return name;
95009500
}
95019501

9502+
WOLFSSL_X509_NAME* wolfSSL_X509_NAME_new(void) {
9503+
return wolfSSL_X509_NAME_new_ex(NULL);
9504+
}
9505+
95029506
/* Creates a duplicate of a WOLFSSL_X509_NAME structure.
95039507
Returns a new WOLFSSL_X509_NAME structure or NULL on failure */
95049508
WOLFSSL_X509_NAME* wolfSSL_X509_NAME_dup(WOLFSSL_X509_NAME *name)
@@ -9512,7 +9516,7 @@ WOLF_STACK_OF(WOLFSSL_X509)* wolfSSL_X509_chain_up_ref(
95129516
return NULL;
95139517
}
95149518

9515-
if (!(copy = wolfSSL_X509_NAME_new())) {
9519+
if (!(copy = wolfSSL_X509_NAME_new_ex(name->heap))) {
95169520
return NULL;
95179521
}
95189522

@@ -10734,8 +10738,8 @@ int wolfSSL_i2d_X509_NAME(WOLFSSL_X509_NAME* name, unsigned char** out)
1073410738
goto cleanup;
1073510739
}
1073610740

10737-
if (!(tmp = wolfSSL_X509_NAME_new())) {
10738-
WOLFSSL_MSG("wolfSSL_X509_NAME_new error");
10741+
if (!(tmp = wolfSSL_X509_NAME_new_ex(cert->heap))) {
10742+
WOLFSSL_MSG("wolfSSL_X509_NAME_new_ex error");
1073910743
goto cleanup;
1074010744
}
1074110745

wolfcrypt/src/asn.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12668,7 +12668,7 @@ static int GetCertName(DecodedCert* cert, char* full, byte* hash, int nameType,
1266812668

1266912669
#if (defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)) && \
1267012670
!defined(WOLFCRYPT_ONLY)
12671-
dName = wolfSSL_X509_NAME_new();
12671+
dName = wolfSSL_X509_NAME_new_ex(cert->heap);
1267212672
if (dName == NULL) {
1267312673
return MEMORY_E;
1267412674
}
@@ -13325,7 +13325,7 @@ static int GetCertName(DecodedCert* cert, char* full, byte* hash, int nameType,
1332513325
#ifdef WOLFSSL_X509_NAME_AVAILABLE
1332613326
if (ret == 0) {
1332713327
/* Create an X509_NAME to hold data for OpenSSL compatability APIs. */
13328-
dName = wolfSSL_X509_NAME_new();
13328+
dName = wolfSSL_X509_NAME_new_ex(cert->heap);
1332913329
if (dName == NULL) {
1333013330
ret = MEMORY_E;
1333113331
}

wolfssl/ssl.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4226,6 +4226,7 @@ WOLFSSL_API WOLFSSL_X509_NAME_ENTRY *wolfSSL_X509_NAME_delete_entry(
42264226
WOLFSSL_API int wolfSSL_X509_NAME_cmp(const WOLFSSL_X509_NAME* x,
42274227
const WOLFSSL_X509_NAME* y);
42284228
WOLFSSL_API WOLFSSL_X509_NAME* wolfSSL_X509_NAME_new(void);
4229+
WOLFSSL_API WOLFSSL_X509_NAME* wolfSSL_X509_NAME_new_ex(void *heap);
42294230
WOLFSSL_API WOLFSSL_X509_NAME* wolfSSL_X509_NAME_dup(WOLFSSL_X509_NAME* name);
42304231
WOLFSSL_API int wolfSSL_X509_NAME_copy(WOLFSSL_X509_NAME* from, WOLFSSL_X509_NAME* to);
42314232
WOLFSSL_API int wolfSSL_check_private_key(const WOLFSSL* ssl);

0 commit comments

Comments
 (0)