summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorAlex Trotsenko <alex1973tr@gmail.com>2021-03-31 18:01:01 +0300
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-04-01 11:56:20 +0000
commit438dbb8642fdb4c7fdd0324afeec505b717f0ade (patch)
treea48595c96e085a93b29967e61f173ffc2a9149a0 /src/network
parent48b0640e39c8116b962f2f92ada3249f8696167b (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.cpp7
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