From 97877d79487befe050f96aa9ae3b52f20a351e97 Mon Sep 17 00:00:00 2001 From: Alex Trotsenko Date: Wed, 31 Mar 2021 17:49:21 +0300 Subject: [PATCH 1/2] QLocalSocket: fix signal name in docs It should be disconnected() instead of disconnectedFromServer(). Pick-to: 6.0 6.1 Change-Id: I2b816e9c92d675ea5a7a26b4752e831c30950ef2 Reviewed-by: Oswald Buddenhagen --- src/network/socket/qlocalsocket.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/socket/qlocalsocket.cpp b/src/network/socket/qlocalsocket.cpp index 19c0b2389e8..3ee98b85c80 100644 --- a/src/network/socket/qlocalsocket.cpp +++ b/src/network/socket/qlocalsocket.cpp @@ -219,7 +219,7 @@ QT_BEGIN_NAMESPACE Attempts to close the socket. If there is pending data waiting to be written, QLocalSocket will enter ClosingState and wait until all data has been written. Eventually, it will enter UnconnectedState and emit - the disconnectedFromServer() signal. + the disconnected() signal. \sa connectToServer() */ From 64f02ebf05d88eaa8399a5cff85db5a605ede62e Mon Sep 17 00:00:00 2001 From: Alex Trotsenko Date: Wed, 31 Mar 2021 18:01:01 +0300 Subject: [PATCH 2/2] QLocalSocket/Win: fix possible UB in _q_pipeClosed() We must stop the pipe writer before closing the handle on which it operates. Pick-to: 5.15 6.0 6.1 Change-Id: I4765dd8393167fe2453653aba76a097b8ace8e3d Reviewed-by: Oswald Buddenhagen --- src/network/socket/qlocalsocket_win.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/network/socket/qlocalsocket_win.cpp b/src/network/socket/qlocalsocket_win.cpp index 41ec5a94d45..677b431265a 100644 --- a/src/network/socket/qlocalsocket_win.cpp +++ b/src/network/socket/qlocalsocket_win.cpp @@ -260,13 +260,10 @@ void QLocalSocketPrivate::_q_pipeClosed() emit q->disconnected(); pipeReader->stop(); + delete pipeWriter; + pipeWriter = nullptr; destroyPipeHandles(); handle = INVALID_HANDLE_VALUE; - - if (pipeWriter) { - delete pipeWriter; - pipeWriter = 0; - } } qint64 QLocalSocket::bytesAvailable() const