summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2020-11-09 22:41:54 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2020-11-09 22:41:54 +0300
commita3b5ccd0566e618635303309dd8592aa4cfd7eaf (patch)
treee980f78357a790cf3b8a9b8a414894e3682f62cb
parent8ed303c055ee003285231b6d781bfe2dd9c0d3d1 (diff)
downloadnginx-a3b5ccd0566e618635303309dd8592aa4cfd7eaf.tar.gz
nginx-a3b5ccd0566e618635303309dd8592aa4cfd7eaf.tar.bz2
Request body: removed error assumption (ticket #2058).
Before introduction of request body filter in 42d9beeb22db, the only possible return code from the ngx_http_request_body_filter() call without actual buffers was NGX_HTTP_INTERNAL_SERVER_ERROR, and the code in ngx_http_read_client_request_body() hardcoded the only possible error to simplify the code of initial call to set rb->rest. This is no longer true after introduction of request body filters though, as a request body filter might need to return other errors, such as 403. Fix is to preserve the error code actually returned by the call instead of assuming 500.
-rw-r--r--src/http/ngx_http_request_body.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/http/ngx_http_request_body.c b/src/http/ngx_http_request_body.c
index 07e78d780..0cae88f77 100644
--- a/src/http/ngx_http_request_body.c
+++ b/src/http/ngx_http_request_body.c
@@ -137,8 +137,9 @@ ngx_http_read_client_request_body(ngx_http_request_t *r,
} else {
/* set rb->rest */
- if (ngx_http_request_body_filter(r, NULL) != NGX_OK) {
- rc = NGX_HTTP_INTERNAL_SERVER_ERROR;
+ rc = ngx_http_request_body_filter(r, NULL);
+
+ if (rc != NGX_OK) {
goto done;
}
}