diff --git a/src/mux_h1.c b/src/mux_h1.c index 886caaaa7..1459fadfa 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -1666,7 +1666,7 @@ static size_t h1_handle_trailers(struct h1s *h1s, struct h1m *h1m, struct htx *h TRACE_ERROR("parsing error, reject H1 message", H1_EV_RX_DATA|H1_EV_RX_TLRS|H1_EV_H1S_ERR, h1s->h1c->conn, h1s); h1_capture_bad_message(h1s->h1c, h1s, h1m, buf); } - else if (ret == -2) { + else if (ret == -2 || b_data(buf) != *ofs) { TRACE_STATE("RX path congested, waiting for more space", H1_EV_RX_DATA|H1_EV_RX_TLRS|H1_EV_H1S_BLK, h1s->h1c->conn, h1s); h1s->flags |= H1S_F_RX_CONGESTED; }