From b3d871554c8cca274db423a81a20c3fbf8c6a899 Mon Sep 17 00:00:00 2001 From: Alex Trotsenko Date: Tue, 1 Nov 2016 20:13:42 +0200 Subject: [PATCH] QAbstractSocket: print error message before emitting the signal The socket might get closed by some slot connected to its error() signal. This could lead to 'errorString' being cleared, which would hide the actual error code from the debug output. Changing the order of calls ensures we always get the correct message. Change-Id: If7c01196dbeb3cb0c97235cd02a3baf63fc190da Reviewed-by: Timur Pocheptsov --- src/network/socket/qabstractsocket.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index 02bba2d293..741bd9a52d 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -1274,11 +1274,11 @@ bool QAbstractSocketPrivate::readFromSocket() } if (!socketEngine->isValid()) { - setErrorAndEmit(socketEngine->error(), socketEngine->errorString()); #if defined(QABSTRACTSOCKET_DEBUG) qDebug("QAbstractSocketPrivate::readFromSocket() read failed: %s", - q->errorString().toLatin1().constData()); + socketEngine->errorString().toLatin1().constData()); #endif + setErrorAndEmit(socketEngine->error(), socketEngine->errorString()); resetSocketLayer(); return false; }