Adding sk_free support for CONF_VALUE

This commit is contained in:
Eric Blankenhorn
2019-09-26 11:28:59 -05:00
parent 425548565f
commit a1b324f7f8
2 changed files with 32 additions and 0 deletions

View File

@ -25842,6 +25842,9 @@ void wolfSSL_sk_free(WOLFSSL_STACK* sk)
case STACK_TYPE_X509_NAME: case STACK_TYPE_X509_NAME:
wolfSSL_sk_X509_NAME_free(sk); wolfSSL_sk_X509_NAME_free(sk);
break; break;
case STACK_TYPE_CONF_VALUE:
wolfSSL_sk_CONF_VALUE_free(sk);
break;
#endif #endif
default: default:
wolfSSL_sk_ASN1_OBJECT_free(sk); wolfSSL_sk_ASN1_OBJECT_free(sk);
@ -25907,6 +25910,33 @@ void wolfSSL_sk_pop_free(WOLF_STACK_OF(WOLFSSL_ASN1_OBJECT)* sk,
} }
} }
#if defined(OPENSSL_ALL)
/* Free the structure for WOLFSSL_CONF_VALUE stack
*
* sk stack to free nodes in
*/
void wolfSSL_sk_CONF_VALUE_free(WOLF_STACK_OF(WOLFSSL_CONF_VALUE)* sk)
{
WOLFSSL_STACK* node;
WOLFSSL_STACK* tmp;
WOLFSSL_ENTER("wolfSSL_sk_CONF_VALUE_free");
if (sk == NULL)
return;
/* parse through stack freeing each node */
node = sk->next;
while (node) {
tmp = node;
node = node->next;
XFREE(tmp, NULL, DYNAMIC_TYPE_OPENSSL);
}
/* free head of stack */
XFREE(sk, NULL, DYNAMIC_TYPE_ASN1);
}
#endif
/* Creates and returns a new null stack. */ /* Creates and returns a new null stack. */
WOLFSSL_STACK* wolfSSL_sk_new_null(void) WOLFSSL_STACK* wolfSSL_sk_new_null(void)
{ {

View File

@ -34,6 +34,8 @@ WOLFSSL_API void wolfSSL_sk_free(WOLFSSL_STACK *);
WOLFSSL_API void wolfSSL_sk_GENERIC_free(WOLFSSL_STACK *); WOLFSSL_API void wolfSSL_sk_GENERIC_free(WOLFSSL_STACK *);
WOLFSSL_API int wolfSSL_sk_GENERIC_push(WOLFSSL_STACK *sk, void *data); WOLFSSL_API int wolfSSL_sk_GENERIC_push(WOLFSSL_STACK *sk, void *data);
WOLFSSL_API void wolfSSL_sk_pop_free(WOLFSSL_STACK *st, void (*func) (void *)); WOLFSSL_API void wolfSSL_sk_pop_free(WOLFSSL_STACK *st, void (*func) (void *));
WOLFSSL_API
void wolfSSL_sk_CONF_VALUE_free(WOLF_STACK_OF(WOLFSSL_CONF_VALUE)* sk);
WOLFSSL_API WOLFSSL_STACK *wolfSSL_sk_new_null(void); WOLFSSL_API WOLFSSL_STACK *wolfSSL_sk_new_null(void);
WOLFSSL_API int wolfSSL_sk_push(WOLFSSL_STACK *st, const void *data); WOLFSSL_API int wolfSSL_sk_push(WOLFSSL_STACK *st, const void *data);