BUG/MEDIUM: mux-h2: properly abort on trailers decoding errors

There was an incomplete test in h2c_frt_handle_headers() resulting
in negative return values from h2c_decode_headers() not being taken
as errors. The effect is that the stream is then aborted on timeout
only.

This fix must be backported to 1.9.
This commit is contained in:
Willy Tarreau 2019-01-24 10:26:47 +01:00
parent 5ce6337254
commit 31e846a071

View File

@ -1865,7 +1865,7 @@ static struct h2s *h2c_frt_handle_headers(struct h2c *h2c, struct h2s *h2s)
if (h2s->st != H2_SS_IDLE) {
/* The stream exists/existed, this must be a trailers frame */
if (h2s->st != H2_SS_CLOSED) {
if (!h2c_decode_headers(h2c, &h2s->rxbuf, &h2s->flags))
if (h2c_decode_headers(h2c, &h2s->rxbuf, &h2s->flags) <= 0)
goto out;
goto done;
}