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
Martin Petersson 2011-04-28 12:07:07 +02:00
parent e4b289c276
commit 5be54b220a
1 changed files with 2 additions and 2 deletions

View File

@ -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;
}