diff options
author | Milian Wolff <mail@milianw.de> | 2014-02-06 17:40:24 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-06 20:17:17 +0100 |
commit | 47cbfe2aca62fa524da171ef147d959afee993ec (patch) | |
tree | 649132a163bb7480eb3f1758a8d6c12f27aed41f | |
parent | 6e7f54a014c43dcd6e32e8288415808623e306f4 (diff) | |
download | qtwebsockets-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.cpp | 4 |
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); } |