Details
-
Bug
-
Resolution: Done
-
P2: Important
-
None
-
5.5.0
-
None
-
Ubuntu 14.04 with Qt 5.5.0
-
f98c2ef27a4f6fa3b7e9c35cf7896abc4b22816b
Description
When performing a HTTPS-GET and call QNetworkReply::abort() in a slot connected to the signal QNetworkReply::encrypted(), the GET is performed, because the QSslSocket is flushed before closing.
The following is the output of the attached sample with a Qt-build with defined QSSLSOCKET_DEBUG and QT_DECRYPT_SSL_TRAFFIC:
qt.network.ssl: QSslSocket::QSslSocket( QObject(0x0) ), this = 0x7fa8d40050b0
qt.network.ssl: QSslSocket::connectToHost( "www.google.de" , 443 , OpenMode( "ReadOnly|WriteOnly" ) )
qt.network.ssl: creating internal plain socket
qt.network.ssl: QSslSocket::_q_stateChangedSlot( QAbstractSocket::HostLookupState )
qt.network.ssl: QSslSocket::_q_stateChangedSlot( QAbstractSocket::ConnectingState )
qt.network.ssl: QSslSocket::_q_stateChangedSlot( QAbstractSocket::ConnectedState )
qt.network.ssl: QSslSocket::_q_connectedSlot()
qt.network.ssl: state = QAbstractSocket::ConnectedState
qt.network.ssl: peer = "www.google.de" QHostAddress("") 443
qt.network.ssl: local = "10.211.4.4" QHostAddress("10.211.4.4") 38897
qt.network.ssl: QSslSocket::startClientEncryption()
qt.network.ssl: QSslSocketBackendPrivate::transmit: wrote 517 encrypted bytes to the socket 517 actual.
qt.network.ssl: QSslSocketBackendPrivate::transmit: testing encryption
qt.network.ssl: QSslSocketBackendPrivate::transmit: encryption not done yet
qt.network.ssl: QSslSocketBackendPrivate::transmit: testing encryption
qt.network.ssl: QSslSocketBackendPrivate::transmit: encryption not done yet
qt.network.ssl: QSslSocket::_q_bytesWrittenSlot( 517 )
qt.network.ssl: QSslSocket::_q_readyReadSlot() - 1448 bytes available
qt.network.ssl: QSslSocketBackendPrivate::transmit: read 1448 encrypted bytes from the socket
qt.network.ssl: QSslSocketBackendPrivate::transmit: testing encryption
qt.network.ssl: QSslSocketBackendPrivate::transmit: encryption not done yet
qt.network.ssl: QSslSocketBackendPrivate::transmit: testing encryption
qt.network.ssl: QSslSocketBackendPrivate::transmit: encryption not done yet
qt.network.ssl: QSslSocket::_q_readyReadSlot() - 2043 bytes available
qt.network.ssl: QSslSocketBackendPrivate::transmit: read 2043 encrypted bytes from the socket
qt.network.ssl: QSslSocketBackendPrivate::transmit: testing encryption
qt.network.ssl: QSslSocketBackendPrivate::transmit: encryption not done yet
qt.network.ssl: QSslSocketBackendPrivate::transmit: wrote 126 encrypted bytes to the socket 126 actual.
qt.network.ssl: QSslSocketBackendPrivate::transmit: testing encryption
qt.network.ssl: QSslSocketBackendPrivate::transmit: encryption not done yet
qt.network.ssl: QSslSocketBackendPrivate::transmit: testing encryption
qt.network.ssl: QSslSocketBackendPrivate::transmit: encryption not done yet
qt.network.ssl: QSslSocket::_q_bytesWrittenSlot( 126 )
qt.network.ssl: QSslSocket::_q_readyReadSlot() - 246 bytes available
qt.network.ssl: QSslSocketBackendPrivate::transmit: read 246 encrypted bytes from the socket
qt.network.ssl: QSslSocketBackendPrivate::transmit: testing encryption
qt.network.ssl: QSslSocketBackendPrivate::transmit: encryption established
Finished "Operation canceled"
Aborted
qt.network.ssl: QSslSocket::writeData( 0x7fa8d401dcf8 , 149 )
qt.network.ssl: QSslSocket::close()
qt.network.ssl: QSslSocket::flush()
qt.network.ssl: QSslSocketBackendPrivate::transmit: encrypted 149 bytes
qt.network.ssl: QSslSocketBackendPrivate::transmit: wrote 178 encrypted bytes to the socket 178 actual.
qt.network.ssl: QSslSocket::_q_bytesWrittenSlot( 178 )
qt.network.ssl: QSslSocket::_q_stateChangedSlot( QAbstractSocket::ClosingState )
qt.network.ssl: QSslSocket::disconnectFromHost()
QIODevice::write (QTcpSocket): device not open
qt.network.ssl: QSslSocketBackendPrivate::transmit: wrote 31 encrypted bytes to the socket -1 actual.
qt.network.ssl: QSslSocket::close()
qt.network.ssl: QSslSocket::disconnectFromHost()
qt.network.ssl: QSslSocket::_q_stateChangedSlot( QAbstractSocket::UnconnectedState )
qt.network.ssl: QSslSocket::_q_disconnectedSlot()
qt.network.ssl: state = QAbstractSocket::UnconnectedState
Attachments
Issue Links
- relates to
-
QTBUG-126610 HTTP2 Support leaks information
-
- Closed
-
For Gerrit Dashboard: QTBUG-47471 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
123087,2 | Abort underlying socket when aborting QNetworkReply | 5.5 | qt/qtbase | Status: MERGED | +2 | 0 |