forked from wolfSSL/wolfssl
add implementation of AUTHORITY_INFO_ACCESS_free
This commit is contained in:
30
src/ssl.c
30
src/ssl.c
@@ -19986,13 +19986,7 @@ void wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(WOLFSSL_STACK* sk,
|
||||
if (f)
|
||||
f(sk->data.access);
|
||||
else {
|
||||
if(sk->data.access->method) {
|
||||
|
||||
wolfSSL_ASN1_OBJECT_free(sk->data.access->method);
|
||||
}
|
||||
if(sk->data.access->location) {
|
||||
wolfSSL_GENERAL_NAME_free(sk->data.access->location);
|
||||
}
|
||||
wolfSSL_ACCESS_DESCRIPTION_free(sk->data.access);
|
||||
}
|
||||
sk->data.access = NULL;
|
||||
}
|
||||
@@ -20004,6 +19998,18 @@ void wolfSSL_sk_ACCESS_DESCRIPTION_free(WOLFSSL_STACK* sk)
|
||||
wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(sk, NULL);
|
||||
}
|
||||
|
||||
|
||||
/* AUTHORITY_INFO_ACCESS object is a stack of ACCESS_DESCRIPTION objects,
|
||||
* to free the stack the WOLFSSL_ACCESS_DESCRIPTION stack free function is
|
||||
* used */
|
||||
void wolfSSL_AUTHORITY_INFO_ACCESS_free(
|
||||
WOLF_STACK_OF(WOLFSSL_ACCESS_DESCRIPTION)* sk)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_AUTHORITY_INFO_ACCESS_free");
|
||||
wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(sk, NULL);
|
||||
}
|
||||
|
||||
|
||||
void wolfSSL_ACCESS_DESCRIPTION_free(WOLFSSL_ACCESS_DESCRIPTION* access)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_ACCESS_DESCRIPTION_free");
|
||||
@@ -20014,6 +20020,7 @@ void wolfSSL_ACCESS_DESCRIPTION_free(WOLFSSL_ACCESS_DESCRIPTION* access)
|
||||
wolfSSL_ASN1_OBJECT_free(access->method);
|
||||
if (access->location)
|
||||
wolfSSL_GENERAL_NAME_free(access->location);
|
||||
XFREE(access, NULL, DYNAMIC_TYPE_X509_EXT);
|
||||
|
||||
/* access = NULL, don't try to access or double free it */
|
||||
}
|
||||
@@ -20385,15 +20392,6 @@ int wolfSSL_sk_ACCESS_DESCRIPTION_num(WOLFSSL_STACK* sk)
|
||||
return (int)sk->num;
|
||||
}
|
||||
|
||||
#ifndef NO_WOLFSSL_STUB
|
||||
/* similar to call to sk_ACCESS_DESCRIPTION_pop_free */
|
||||
void wolfSSL_AUTHORITY_INFO_ACCESS_free(
|
||||
WOLF_STACK_OF(WOLFSSL_ACCESS_DESCRIPTION)* sk)
|
||||
{
|
||||
WOLFSSL_STUB("wolfSSL_AUTHORITY_INFO_ACCESS_free");
|
||||
(void)sk;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* returns the node at index "idx", NULL if not found */
|
||||
WOLFSSL_STACK* wolfSSL_sk_get_node(WOLFSSL_STACK* sk, int idx)
|
||||
|
@@ -36463,7 +36463,10 @@ static void test_wolfSSL_GENERAL_NAME_print(void)
|
||||
AssertIntEQ(XSTRNCMP((const char*)outbuf, uriStr, XSTRLEN(uriStr)), 0);
|
||||
|
||||
wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(aia, NULL);
|
||||
XFREE(ad, NULL, DYNAMIC_TYPE_X509_EXT);
|
||||
|
||||
aia = (AUTHORITY_INFO_ACCESS*)wolfSSL_X509V3_EXT_d2i(ext);
|
||||
AssertNotNull(aia);
|
||||
AUTHORITY_INFO_ACCESS_free(aia);
|
||||
X509_free(x509);
|
||||
|
||||
/* test for GEN_IPADD */
|
||||
@@ -41061,7 +41064,6 @@ static void test_wolfSSL_X509V3_EXT(void) {
|
||||
AssertIntEQ(actual, 0);
|
||||
|
||||
wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(aia, NULL);
|
||||
XFREE(ad, NULL, DYNAMIC_TYPE_X509_EXT);
|
||||
#else
|
||||
(void) aia; (void) ad; (void) adObj; (void) gn;
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user