From a5bd6cde8dfb7f6c22823dc6728660d89726d305 Mon Sep 17 00:00:00 2001 From: Hideki Miyazaki Date: Thu, 2 Dec 2021 16:37:48 +0900 Subject: [PATCH] fix nigtly jenkins Qt Job failure --- src/ssl.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ssl.c b/src/ssl.c index 4401fedee..527d8fe44 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -30939,11 +30939,20 @@ void wolfSSL_sk_pop_free(WOLF_STACK_OF(WOLFSSL_ASN1_OBJECT)* sk, WOLFSSL_MSG("Error, BAD_FUNC_ARG"); return; } - + #if defined(WOLFSSL_QT) + /* In Qt v15.5, it calls OPENSSL_sk_free(xxx, OPENSSL_sk_free). + * By using OPENSSL_sk_free for free causes access violation. + * Therefore, switching free func to wolfSSL_ACCESS_DESCRIPTION_free + * is needed even the func isn't NULL. + */ + if (sk->type == STACK_TYPE_ACCESS_DESCRIPTION) { + func = (wolfSSL_sk_freefunc)wolfSSL_ACCESS_DESCRIPTION_free; + } + #endif if (func == NULL) { switch(sk->type) { case STACK_TYPE_ACCESS_DESCRIPTION: - #if defined(OPENSSL_ALL) || defined (WOLFSSL_QT) + #if defined(OPENSSL_ALL) func = (wolfSSL_sk_freefunc)wolfSSL_ACCESS_DESCRIPTION_free; #endif break;