From 47cbfe2aca62fa524da171ef147d959afee993ec Mon Sep 17 00:00:00 2001 From: Milian Wolff Date: Thu, 6 Feb 2014 17:40:24 +0100 Subject: 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::operator[]: "index out of range", file /ssd/milian/projects/compiled/qt5/include/QtCore/qlist.h, line 476 Change-Id: I3e5c4750b304b2a4a5669a39e2d65a6b3e4e99cf Reviewed-by: Kurt Pattyn --- src/websockets/qwebsocket_p.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') 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); } -- cgit v1.2.1