BUG/MINOR: qpack: fix buffer API usage on prefix integer encoding

Replace bogus call b_data() by b_room() to check if there is enough
space left in the buffer before encoding a prefix integer.

At this moment, no real scenario was found to trigger a bug related to
this change. This is probably because the buffer always contains data
(field section line and status code) before calling
qpack_encode_prefix_integer() which prevents an occurrence of this bug.
This commit is contained in:
Amaury Denoyelle 2022-05-30 11:58:06 +02:00
parent e06ca65e8d
commit 5f6de8d77a
1 changed files with 2 additions and 2 deletions

View File

@ -33,13 +33,13 @@ static int qpack_encode_prefix_integer(struct buffer *out, int i, int prefix_siz
BUG_ON(!prefix_size);
if (i < (1 << prefix_size) - 1) {
if (b_data(out) < 1)
if (b_room(out) < 1)
return 1;
b_putchr(out, before_prefix | i);
}
else {
if (b_data(out) < 2)
if (b_room(out) < 2)
return 1;
b_putchr(out, before_prefix | ((1 << prefix_size) - 1));