From 607057dd9e10eefbf78a7ebf4229ffaaa9735a5a Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Sun, 7 May 2023 03:27:50 -0400 Subject: [core] fix HTTP/2 use of http_response_loop() (bug recently reached master branch; not released) --- src/h2.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/h2.c b/src/h2.c index 5e817068..e9176cbc 100644 --- a/src/h2.c +++ b/src/h2.c @@ -3201,10 +3201,14 @@ h2_process_streams (connection * const con, switch (r->state) { case CON_STATE_READ_POST: case CON_STATE_HANDLE_REQUEST: - if (http_response_loop(r) > HANDLER_WAIT_FOR_EVENT) { - /* HANDLER_ERROR or HANDLER_COMEBACK (not expected) */ - request_set_state_error(r, CON_STATE_ERROR); - break; + { + const handler_t rc = http_response_loop(r); + if (rc >= HANDLER_WAIT_FOR_EVENT) { + if (rc > HANDLER_WAIT_FOR_EVENT) + /*HANDLER_ERROR or HANDLER_COMEBACK (not expected)*/ + request_set_state_error(r, CON_STATE_ERROR); + break; + } } /*__attribute_fallthrough__*/ /*case CON_STATE_RESPONSE_START:*//*occurred;transient*/ -- cgit v1.2.1