QAbstractSocket: Fix waitForReadyRead infinite loop.
Make sure that waitForReadyRead times out if the read buffer is full. Task-number: QTBUG-16123 Reviewed-by: Peter Hartmann (cherry picked from commit 8d4cd52b6981a4e6deea7fdb77f56e40c4f3e6ba)bb10
parent
e4b289c276
commit
5be54b220a
|
|
@ -1877,7 +1877,7 @@ bool QAbstractSocket::waitForReadyRead(int msecs)
|
|||
}
|
||||
|
||||
Q_ASSERT(d->socketEngine);
|
||||
forever {
|
||||
do {
|
||||
bool readyToRead = false;
|
||||
bool readyToWrite = false;
|
||||
if (!d->socketEngine->waitForReadOrWrite(&readyToRead, &readyToWrite, true, !d->writeBuffer.isEmpty(),
|
||||
|
|
@ -1904,7 +1904,7 @@ bool QAbstractSocket::waitForReadyRead(int msecs)
|
|||
|
||||
if (state() != ConnectedState)
|
||||
return false;
|
||||
}
|
||||
} while (qt_timeout_value(msecs, stopWatch.elapsed()) > 0);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue