summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2013-07-30 15:04:46 +0400
committerSergey Kandaurov <pluknet@nginx.com>2013-07-30 15:04:46 +0400
commit0fea0bf3f7982348fd6ec9d14ebd946c783445b0 (patch)
tree185d65ce4f257a7b7c7ef57c0dcf2215f6562cd4
parent2b2def789199b1fc661fbac38ff6bf7fdccb7bbb (diff)
downloadnginx-0fea0bf3f7982348fd6ec9d14ebd946c783445b0.tar.gz
nginx-0fea0bf3f7982348fd6ec9d14ebd946c783445b0.tar.bz2
Added safety belt for the case of sending header twice.
The aforementioned situation is abnormal per se and as such it now forces request termination with appropriate error message.
-rw-r--r--src/http/ngx_http_core_module.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index ffe7fb4fe..47e5ff789 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -1933,6 +1933,12 @@ ngx_http_send_response(ngx_http_request_t *r, ngx_uint_t status,
ngx_int_t
ngx_http_send_header(ngx_http_request_t *r)
{
+ if (r->header_sent) {
+ ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0,
+ "header already sent");
+ return NGX_ERROR;
+ }
+
if (r->err_status) {
r->headers_out.status = r->err_status;
r->headers_out.status_line.len = 0;