From 31e4f6e1491918bd1e9d28f49e52a3962c9605f5 Mon Sep 17 00:00:00 2001 From: Amaury Denoyelle Date: Tue, 15 Feb 2022 17:30:27 +0100 Subject: [PATCH] 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. --- src/h3.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/h3.c b/src/h3.c index b9e4d5e5a..7cecb5de7 100644 --- a/src/h3.c +++ b/src/h3.c @@ -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 */