Klaus Demo nginx / e769544
Request body: block write events while reading body. If write events are not blocked, an extra write event might happen for various reasons (e.g. as a result of a http pipelining), resulting in incorrect body being passed to a post handler. The problem manifested itself with the dav module only, as this is the only module which reads the body from a content phase handler (in contrast to exclusive content handlers like proxy). Additionally, dav module used to dump core in such situations due to ticket #238. See reports here: http://mailman.nginx.org/pipermail/nginx-devel/2012-November/002981.html http://serverfault.com/questions/449195/nginx-webdav-server-with-auth-request Maxim Dounin 9 years ago
1 changed file(s) with 2 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
104104
105105 rb->buf = r->header_in;
106106 r->read_event_handler = ngx_http_read_client_request_body_handler;
107 r->write_event_handler = ngx_http_request_empty_handler;
107108
108109 rc = ngx_http_do_read_client_request_body(r);
109110 goto done;
165166 }
166167
167168 r->read_event_handler = ngx_http_read_client_request_body_handler;
169 r->write_event_handler = ngx_http_request_empty_handler;
168170
169171 rc = ngx_http_do_read_client_request_body(r);
170172