From: Amaury Denoyelle Date: Tue, 15 Feb 2022 16:30:27 +0000 (+0100) Subject: MINOR: h3: report error on HEADERS/DATA parsing X-Git-Tag: v2.6-dev2~128 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=31e4f6e1491918bd1e9d28f49e52a3962c9605f5;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/h3.c b/src/h3.c index b9e4d5e5a5..7cecb5de7f 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 */