]> git.kaiwu.me - nginx.git/commit
HTTP/2: discard remaining request body after redirect.
authorSergey Kandaurov <pluknet@nginx.com>
Mon, 19 Aug 2019 12:16:06 +0000 (15:16 +0300)
committerSergey Kandaurov <pluknet@nginx.com>
Mon, 19 Aug 2019 12:16:06 +0000 (15:16 +0300)
commit9cb22efa3fe947f8474338b99d389a35da177bb9
tree9f4f5eb35871d230cb084226c132f25f20b1fe0d
parent1f960ed92a632cc60ac22c34237fe2f0eb1f8658
HTTP/2: discard remaining request body after redirect.

Previously, if unbuffered request body reading wasn't finished before
the request was redirected to a different location using error_page
or X-Accel-Redirect, and the request body is read again, this could
lead to disastrous effects, such as a duplicate post_handler call or
"http request count is zero" alert followed by a segmentation fault.

This happened in the following configuration (ticket #1819):

    location / {
        proxy_request_buffering off;
        proxy_pass http://bad;
        proxy_intercept_errors on;
        error_page 502 = /error;
    }

    location /error {
        proxy_pass http://backend;
    }
src/http/v2/ngx_http_v2.c