Mercurial > hg > nginx
view src/os/win32/ngx_socket.c @ 7561:9f1f9d6e056a
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;
}
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 19 Aug 2019 15:16:06 +0300 |
parents | d620f497c50f |
children | efd71d49bde0 |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #include <ngx_config.h> #include <ngx_core.h> int ngx_nonblocking(ngx_socket_t s) { unsigned long nb = 1; return ioctlsocket(s, FIONBIO, &nb); } int ngx_blocking(ngx_socket_t s) { unsigned long nb = 0; return ioctlsocket(s, FIONBIO, &nb); } int ngx_tcp_push(ngx_socket_t s) { return 0; }