MINOR: h3: report error on HEADERS/DATA parsing

Inspect return code of HEADERS/DATA parsing functions and use a BUG_ON
to signal an error. The stream should be closed to handle the error
in a more clean fashion.
This commit is contained in:
Amaury Denoyelle 2022-02-15 17:30:27 +01:00
parent 71f3abbb52
commit 31e4f6e149

View File

@ -231,6 +231,7 @@ static int h3_data_to_htx(struct qcs *qcs, struct buffer *buf, uint64_t len,
static int h3_decode_qcs(struct qcs *qcs, int fin, void *ctx)
{
struct buffer *rxbuf = &qcs->rx.buf;
int ret;
h3_debug_printf(stderr, "%s: STREAM ID: %llu\n", __func__, qcs->by_id.key);
if (!b_data(rxbuf))
@ -261,10 +262,14 @@ static int h3_decode_qcs(struct qcs *qcs, int fin, void *ctx)
switch (ftype) {
case H3_FT_DATA:
h3_data_to_htx(qcs, rxbuf, flen, last_stream_frame);
ret = h3_data_to_htx(qcs, rxbuf, flen, last_stream_frame);
/* TODO handle error reporting. Stream closure required. */
BUG_ON(ret);
break;
case H3_FT_HEADERS:
h3_headers_to_htx(qcs, rxbuf, flen, last_stream_frame);
ret = h3_headers_to_htx(qcs, rxbuf, flen, last_stream_frame);
/* TODO handle error reporting. Stream closure required. */
BUG_ON(ret);
break;
case H3_FT_PUSH_PROMISE:
/* Not supported */