BUG/MINOR: hpack: dynamic table size updates are only allowed before headers

h2spec reports that we used to support a dynamic table size update
anywhere in the header block but it's only allowed before other
headers (cf RFC7541#4.2.1). In practice we don't use these for now
since we only use literals in responses.

To backport to 1.8.
This commit is contained in:
Willy Tarreau 2017-12-03 18:09:21 +01:00
parent d85ba4e092
commit c611e6681b

View File

@ -202,6 +202,12 @@ int hpack_decode_frame(struct hpack_dht *dht, const uint8_t *raw, uint32_t len,
}
else if (*raw >= 0x20 && *raw <= 0x3f) {
/* max dyn table size change */
if (ret) {
/* 7541#4.2.1 : DHT size update must only be at the beginning */
ret = -HPACK_ERR_TOO_LARGE;
goto leave;
}
idx = get_var_int(&raw, &len, 5);
if (len == (uint32_t)-1) { // truncated
ret = -HPACK_ERR_TRUNCATED;