mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-22 13:46:52 +00:00
BUG/MINOR: h3: fix the header length for QPACK decoding
Pass the H3 frame length to QPACK decoding instead of the length of the whole buffer. Without this fix, if there is multiple H3 frames starting with a HEADERS, QPACK decoding will be erroneously applied over all of them, most probably leading to a decoding error.
This commit is contained in:
parent
6a2c2f4910
commit
4ac6d37333
3
src/h3.c
3
src/h3.c
@ -134,14 +134,13 @@ static int h3_decode_qcs(struct qcs *qcs, int fin, void *ctx)
|
||||
case H3_FT_HEADERS:
|
||||
{
|
||||
const unsigned char *buf = (const unsigned char *)b_head(rxbuf);
|
||||
size_t len = b_data(rxbuf);
|
||||
struct buffer htx_buf = BUF_NULL;
|
||||
struct buffer *tmp = get_trash_chunk();
|
||||
struct ist meth = IST_NULL, path = IST_NULL;
|
||||
//struct ist scheme = IST_NULL, authority = IST_NULL;
|
||||
struct ist authority = IST_NULL;
|
||||
|
||||
if (qpack_decode_fs(buf, len, tmp, list) < 0) {
|
||||
if (qpack_decode_fs(buf, flen, tmp, list) < 0) {
|
||||
h3->err = QPACK_DECOMPRESSION_FAILED;
|
||||
return -1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user