You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- We should check return code of `tfw_hpack_exp_hdr`
in `BUFFER_VAL_OPEN` and return error if allocation
fails to prevent BUG.
- Save `it->next` before call `tfw_hpack_exp_hdr` in
`tfw_hpack_huffman_write` and restore `it->next`
after this call. There is a small chance that during
`tfw_hpack_exp_hdr->tfw_str_add_compound->__str_grow_tree`
new pages will be allocated in `__tfw_pool_realloc`.
In this case all chunks in it->hdr will be moved and
change there addresses, but it->next still points to
the old chunk address! (This lead to BUG during
processing header values later, when we iterate over
all chunks from `it->next`. (See `__hpack_process_hdr_value`)
This patch fixes this problem - now it->next not a pointer
it is a number of chunk in `it->hdr`. The number of chunk
is not changed during call `tfw_hpack_exp_hdr` so even
if all chunks moved, the number is correct!.
0 commit comments