summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilian Wolff <mail@milianw.de>2014-02-06 17:40:24 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-06 20:17:17 +0100
commit47cbfe2aca62fa524da171ef147d959afee993ec (patch)
tree649132a163bb7480eb3f1758a8d6c12f27aed41f
parent6e7f54a014c43dcd6e32e8288415808623e306f4 (diff)
downloadqtwebsockets-47cbfe2aca62fa524da171ef147d959afee993ec.tar.gz
Fix assertion when encountering invalid header line.
The server test sets an empty identifier which results in a headerLine containing "Server: ". The split then yields a list with a single entry ("Server"). Calling [1] on it asserts then. QFATAL : tst_QWebSocketServer::tst_connectivity() ASSERT failure in QList<T>::operator[]: "index out of range", file /ssd/milian/projects/compiled/qt5/include/QtCore/qlist.h, line 476 Change-Id: I3e5c4750b304b2a4a5669a39e2d65a6b3e4e99cf Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
-rw-r--r--src/websockets/qwebsocket_p.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp
index 5d58fec..5f59b54 100644
--- a/src/websockets/qwebsocket_p.cpp
+++ b/src/websockets/qwebsocket_p.cpp
@@ -872,7 +872,9 @@ void QWebSocketPrivate::processHandshake(QTcpSocket *pSocket)
while (!headerLine.isEmpty()) {
const QStringList headerField = headerLine.split(QStringLiteral(": "),
QString::SkipEmptyParts);
- headers.insertMulti(headerField[0], headerField[1]);
+ if (headerField.size() == 2) {
+ headers.insertMulti(headerField[0], headerField[1]);
+ }
headerLine = readLine(pSocket);
}