diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2017-11-10 16:25:49 +0100 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2017-11-15 21:06:29 +0000 |
commit | 7c334301bd32376538390027f7481c4b5f3eab49 (patch) | |
tree | 8de4188e4a98d6dffb4ceeb8b7f8a4dc8fe37300 | |
parent | 7465329fe18315d50c4e6325cfd7c9fc1e203812 (diff) | |
download | qtbase-7c334301bd32376538390027f7481c4b5f3eab49.tar.gz |
HTTP/2 - fix header processing
httpReply->setHeaderField does not simply append (name|value) pairs,
it first erases all entries with the same name. This is quite
wrong when we have _several_ 'Set-Cookie' headers, for example.
Found while trying to login into a facebook account :)
Task-number: QTBUG-64359
Change-Id: I51416ca3ba3d92b9414e4649e493d9cd88f6d9a0
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
-rw-r--r-- | src/network/access/qhttp2protocolhandler.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/network/access/qhttp2protocolhandler.cpp b/src/network/access/qhttp2protocolhandler.cpp index 114feb91b7..9dfcec8311 100644 --- a/src/network/access/qhttp2protocolhandler.cpp +++ b/src/network/access/qhttp2protocolhandler.cpp @@ -1069,7 +1069,7 @@ void QHttp2ProtocolHandler::updateStream(Stream &stream, const HPack::HttpHeader QByteArray binder(", "); if (name == "set-cookie") binder = "\n"; - httpReply->setHeaderField(name, value.replace('\0', binder)); + httpReplyPrivate->fields.append(qMakePair(name, value.replace('\0', binder))); } } |