diff options
author | Alex Trotsenko <alex1973tr@gmail.com> | 2021-03-31 18:01:01 +0300 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-03-31 18:43:17 +0000 |
commit | fe979a809fb1ae4c124f2cb11187b96326544361 (patch) | |
tree | 1872c22f9eec1f4783bf27751b144da23459abe8 /src/network | |
parent | 4e15494dade52efc83603c1f90cc4d3e054325d3 (diff) |
QLocalSocket/Win: fix possible UB in _q_pipeClosed()
We must stop the pipe writer before closing the handle on which it
operates.
Change-Id: I4765dd8393167fe2453653aba76a097b8ace8e3d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
(cherry picked from commit 64f02ebf05d88eaa8399a5cff85db5a605ede62e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/socket/qlocalsocket_win.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/network/socket/qlocalsocket_win.cpp b/src/network/socket/qlocalsocket_win.cpp index 41ec5a94d4..677b431265 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 |