Merge pull request #4327 from JacobBarthelmeh/Compatibility-Layer-Part3

add implementation of AUTHORITY_INFO_ACCESS_free
This commit is contained in:
John Safranek
2021-08-27 09:27:34 -07:00
committed by GitHub
2 changed files with 18 additions and 18 deletions

View File

@ -20096,13 +20096,7 @@ void wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(WOLFSSL_STACK* sk,
if (f) if (f)
f(sk->data.access); f(sk->data.access);
else { else {
if(sk->data.access->method) { wolfSSL_ACCESS_DESCRIPTION_free(sk->data.access);
wolfSSL_ASN1_OBJECT_free(sk->data.access->method);
}
if(sk->data.access->location) {
wolfSSL_GENERAL_NAME_free(sk->data.access->location);
}
} }
sk->data.access = NULL; sk->data.access = NULL;
} }
@ -20114,6 +20108,18 @@ void wolfSSL_sk_ACCESS_DESCRIPTION_free(WOLFSSL_STACK* sk)
wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(sk, NULL); 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) void wolfSSL_ACCESS_DESCRIPTION_free(WOLFSSL_ACCESS_DESCRIPTION* access)
{ {
WOLFSSL_ENTER("wolfSSL_ACCESS_DESCRIPTION_free"); WOLFSSL_ENTER("wolfSSL_ACCESS_DESCRIPTION_free");
@ -20124,6 +20130,7 @@ void wolfSSL_ACCESS_DESCRIPTION_free(WOLFSSL_ACCESS_DESCRIPTION* access)
wolfSSL_ASN1_OBJECT_free(access->method); wolfSSL_ASN1_OBJECT_free(access->method);
if (access->location) if (access->location)
wolfSSL_GENERAL_NAME_free(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 */ /* access = NULL, don't try to access or double free it */
} }
@ -20495,15 +20502,6 @@ int wolfSSL_sk_ACCESS_DESCRIPTION_num(WOLFSSL_STACK* sk)
return (int)sk->num; 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 */ /* returns the node at index "idx", NULL if not found */
WOLFSSL_STACK* wolfSSL_sk_get_node(WOLFSSL_STACK* sk, int idx) WOLFSSL_STACK* wolfSSL_sk_get_node(WOLFSSL_STACK* sk, int idx)

View File

@ -36515,7 +36515,10 @@ static void test_wolfSSL_GENERAL_NAME_print(void)
AssertIntEQ(XSTRNCMP((const char*)outbuf, uriStr, XSTRLEN(uriStr)), 0); AssertIntEQ(XSTRNCMP((const char*)outbuf, uriStr, XSTRLEN(uriStr)), 0);
wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(aia, NULL); 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); X509_free(x509);
/* test for GEN_IPADD */ /* test for GEN_IPADD */
@ -41113,7 +41116,6 @@ static void test_wolfSSL_X509V3_EXT(void) {
AssertIntEQ(actual, 0); AssertIntEQ(actual, 0);
wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(aia, NULL); wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(aia, NULL);
XFREE(ad, NULL, DYNAMIC_TYPE_X509_EXT);
#else #else
(void) aia; (void) ad; (void) adObj; (void) gn; (void) aia; (void) ad; (void) adObj; (void) gn;
#endif #endif