Merge pull request #6558 from anhu/wolfSSL_X509_NAME_heap

Allocate WOLFSSL_X509_NAME with heap hint.
This commit is contained in:
David Garske 2023-06-30 10:35:08 -07:00 committed by GitHub
commit 9fc68f4a80
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 11 deletions

View File

@ -27382,7 +27382,7 @@ static int HashSkeData(WOLFSSL* ssl, enum wc_HashType hashType,
ret = GetName(cert, SUBJECT, dnSz);
if (ret == 0) {
if ((name = wolfSSL_X509_NAME_new()) == NULL)
if ((name = wolfSSL_X509_NAME_new_ex(cert->heap)) == NULL)
ret = MEMORY_ERROR;
}

View File

@ -9477,7 +9477,7 @@ WOLF_STACK_OF(WOLFSSL_X509)* wolfSSL_X509_chain_up_ref(
{
WOLFSSL_ENTER("wolfSSL_X509_NAME_free");
FreeX509Name(name);
XFREE(name, NULL, DYNAMIC_TYPE_X509);
XFREE(name, name->heap, DYNAMIC_TYPE_X509);
}
@ -9485,20 +9485,24 @@ WOLF_STACK_OF(WOLFSSL_X509)* wolfSSL_X509_chain_up_ref(
*
* returns NULL on failure, otherwise returns a new structure.
*/
WOLFSSL_X509_NAME* wolfSSL_X509_NAME_new(void)
WOLFSSL_X509_NAME* wolfSSL_X509_NAME_new_ex(void *heap)
{
WOLFSSL_X509_NAME* name;
WOLFSSL_ENTER("wolfSSL_X509_NAME_new");
WOLFSSL_ENTER("wolfSSL_X509_NAME_new_ex");
name = (WOLFSSL_X509_NAME*)XMALLOC(sizeof(WOLFSSL_X509_NAME), NULL,
name = (WOLFSSL_X509_NAME*)XMALLOC(sizeof(WOLFSSL_X509_NAME), heap,
DYNAMIC_TYPE_X509);
if (name != NULL) {
InitX509Name(name, 1, NULL);
InitX509Name(name, 1, heap);
}
return name;
}
WOLFSSL_X509_NAME* wolfSSL_X509_NAME_new(void) {
return wolfSSL_X509_NAME_new_ex(NULL);
}
/* Creates a duplicate of a WOLFSSL_X509_NAME structure.
Returns a new WOLFSSL_X509_NAME structure or NULL on failure */
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(
return NULL;
}
if (!(copy = wolfSSL_X509_NAME_new())) {
if (!(copy = wolfSSL_X509_NAME_new_ex(name->heap))) {
return NULL;
}
@ -10734,8 +10738,8 @@ int wolfSSL_i2d_X509_NAME(WOLFSSL_X509_NAME* name, unsigned char** out)
goto cleanup;
}
if (!(tmp = wolfSSL_X509_NAME_new())) {
WOLFSSL_MSG("wolfSSL_X509_NAME_new error");
if (!(tmp = wolfSSL_X509_NAME_new_ex(cert->heap))) {
WOLFSSL_MSG("wolfSSL_X509_NAME_new_ex error");
goto cleanup;
}

View File

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

View File

@ -4226,6 +4226,7 @@ WOLFSSL_API WOLFSSL_X509_NAME_ENTRY *wolfSSL_X509_NAME_delete_entry(
WOLFSSL_API int wolfSSL_X509_NAME_cmp(const WOLFSSL_X509_NAME* x,
const WOLFSSL_X509_NAME* y);
WOLFSSL_API WOLFSSL_X509_NAME* wolfSSL_X509_NAME_new(void);
WOLFSSL_API WOLFSSL_X509_NAME* wolfSSL_X509_NAME_new_ex(void *heap);
WOLFSSL_API WOLFSSL_X509_NAME* wolfSSL_X509_NAME_dup(WOLFSSL_X509_NAME* name);
WOLFSSL_API int wolfSSL_X509_NAME_copy(WOLFSSL_X509_NAME* from, WOLFSSL_X509_NAME* to);
WOLFSSL_API int wolfSSL_check_private_key(const WOLFSSL* ssl);