From 3e210dc19a6f51e34a788bcd492741628224111c Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Mon, 7 Sep 2020 10:21:58 +0200 Subject: Huffman compression: handle QByteArray's elements as unsigned char MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: QTBUG-86418 Pick-to: 5.15 Change-Id: Ie57ecad2b1fda7c2fc0de60cbdb4304c00e645d0 Reviewed-by: MÃ¥rten Nordheim --- src/network/access/http2/huffman.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/network/access') diff --git a/src/network/access/http2/huffman.cpp b/src/network/access/http2/huffman.cpp index 0c1aa54dd6..3cc6f9f01e 100644 --- a/src/network/access/http2/huffman.cpp +++ b/src/network/access/http2/huffman.cpp @@ -392,8 +392,10 @@ quint64 huffman_encoded_bit_length(const QByteArray &inputData) void huffman_encode_string(const QByteArray &inputData, BitOStream &outputStream) { - for (int i = 0, e = inputData.size(); i < e; ++i) - write_huffman_code(outputStream, staticHuffmanCodeTable[int(inputData[i])]); + for (int i = 0, e = inputData.size(); i < e; ++i) { + const auto value = uchar(inputData[i]); + write_huffman_code(outputStream, staticHuffmanCodeTable[value]); + } // Pad bits ... if (outputStream.bitLength() % 8) -- cgit v1.2.3