diff -ur a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp --- a/src/network/ssl/qsslcertificate.cpp 2012-11-23 02:09:54.000000000 -0800 +++ b/src/network/ssl/qsslcertificate.cpp 2018-03-29 02:39:13.677510242 -0700 @@ -430,7 +430,7 @@ else if (genName->type == GEN_EMAIL) result.insert(QSsl::EmailEntry, altName); } - q_sk_pop_free((STACK*)altNames, reinterpret_cast(q_sk_free)); + q_sk_pop_free((STACK*)altNames, reinterpret_cast(q_GENERAL_NAME_free)); } return result; diff -ur a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp --- a/src/network/ssl/qsslsocket_openssl_symbols.cpp 2012-11-23 02:09:54.000000000 -0800 +++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp 2018-03-29 02:38:31.021310355 -0700 @@ -155,6 +155,7 @@ DEFINEFUNC(void, RSA_free, RSA *a, a, return, DUMMYARG) DEFINEFUNC(int, sk_num, STACK *a, a, return -1, return) DEFINEFUNC2(void, sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG) +DEFINEFUNC(void, GENERAL_NAME_free, GENERAL_NAME *a, a, return, DUMMYARG) #if OPENSSL_VERSION_NUMBER >= 0x10000000L DEFINEFUNC(void, sk_free, _STACK *a, a, return, DUMMYARG) DEFINEFUNC2(void *, sk_value, STACK *a, a, int b, b, return 0, return) @@ -844,6 +845,7 @@ RESOLVEFUNC(X509_get_issuer_name) RESOLVEFUNC(X509_get_subject_name) RESOLVEFUNC(X509_verify_cert) + RESOLVEFUNC(GENERAL_NAME_free) RESOLVEFUNC(d2i_X509) RESOLVEFUNC(i2d_X509) #ifdef SSLEAY_MACROS diff -ur a/src/network/ssl/qsslsocket_openssl_symbols_p.h b/src/network/ssl/qsslsocket_openssl_symbols_p.h --- a/src/network/ssl/qsslsocket_openssl_symbols_p.h 2012-11-23 02:09:54.000000000 -0800 +++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h 2018-03-29 02:33:14.599828786 -0700 @@ -260,6 +260,7 @@ void q_RSA_free(RSA *a); int q_sk_num(STACK *a); void q_sk_pop_free(STACK *a, void (*b)(void *)); +void q_GENERAL_NAME_free(GENERAL_NAME* a); #if OPENSSL_VERSION_NUMBER >= 0x10000000L void q_sk_free(_STACK *a); void * q_sk_value(STACK *a, int b);