HTTP/2: skip data frames in case of internal errors.
This prevents possible processing of such frames and triggering
rb->post_handler if an error occurred during r->request_body
initialization.
diff --git a/src/http/v2/ngx_http_v2.c b/src/http/v2/ngx_http_v2.c
index 421cfa0..dd712c1 100644
--- a/src/http/v2/ngx_http_v2.c
+++ b/src/http/v2/ngx_http_v2.c
@@ -3473,6 +3473,7 @@
}
if (rb->buf == NULL) {
+ stream->skip_data = 1;
return NGX_HTTP_INTERNAL_SERVER_ERROR;
}
@@ -3494,6 +3495,7 @@
stream->recv_window)
== NGX_ERROR)
{
+ stream->skip_data = 1;
return NGX_HTTP_INTERNAL_SERVER_ERROR;
}
}