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.
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;
}