HTTP header may be damaged - fix, unit test
authorTomasz Duda <tomaszduda23@gmail.com>
Thu, 6 Sep 2012 20:15:26 +0000 (22:15 +0200)
committerQt by Nokia <qt-info@nokia.com>
Mon, 17 Sep 2012 22:59:08 +0000 (00:59 +0200)
commit60f4fc8b706db9cbeacd5dc4886a7aa347daafc0
tree6a6ed9f8a0e83c589fbb4ddf28bba3573fa70332
parent58e2b9c01b31cef8a0fa263de3d984c22f1d7ca7
HTTP header may be damaged - fix, unit test

"HTTP/1.1 100 CONTINUE\r\n"
If the header from a server is splitted between two packets
the first packet contains "HTTP/1.1 100" and the second one
contains " CONTINUE\r\n", one space (0x20) is skipped. After
processing the line looks in this way "HTTP/1.1 100CONTINUE".
QHttpNetworkReplyPrivate::readStatus(QAbstractSocket *socket)
is called twice, if a http header is splitted as above.
The function always removes whitespace from the beginning of a packet,
even if it is the second part of a http header.

QHttpNetworkReply returns QNetworkReply::RemoteHostClosedError
due to damaged http header during processing.

Improvement of unit test.

Task-number: QTBUG-27161

Change-Id: Ifc2949f62473209b4032185effbf5078b4130cda
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
src/network/access/qhttpnetworkreply.cpp
tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp