diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/network/ssl/qsslsocket_openssl.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 3421154114..bcb2254d11 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -1487,11 +1487,13 @@ void QSslSocketBackendPrivate::continueHandshake() } #if OPENSSL_VERSION_NUMBER >= 0x1000100fL && !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG) - const unsigned char *proto; - unsigned int proto_len; + const unsigned char *proto = 0; + unsigned int proto_len = 0; q_SSL_get0_next_proto_negotiated(ssl, &proto, &proto_len); - QByteArray nextProtocol(reinterpret_cast<const char *>(proto), proto_len); - configuration.nextNegotiatedProtocol = nextProtocol; + if (proto_len) + configuration.nextNegotiatedProtocol = QByteArray(reinterpret_cast<const char *>(proto), proto_len); + else + configuration.nextNegotiatedProtocol.clear(); configuration.nextProtocolNegotiationStatus = sslContextPointer->npnContext().status; #endif // OPENSSL_VERSION_NUMBER >= 0x1000100fL ... |