From 78b39bd631fc18fd5778090183776f5275005e21 Mon Sep 17 00:00:00 2001 From: Maxim Dounin Date: Fri, 12 Jul 2019 15:39:25 +0300 Subject: Perl: avoid returning 500 if header was already sent. Returning NGX_HTTP_INTERNAL_SERVER_ERROR if a perl code died after sending header will lead to a "header already sent" alert. To avoid it, we now check if header was already sent, and return NGX_ERROR instead if it was. --- src/http/modules/perl/ngx_http_perl_module.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/http/modules/perl/ngx_http_perl_module.c') diff --git a/src/http/modules/perl/ngx_http_perl_module.c b/src/http/modules/perl/ngx_http_perl_module.c index 81b2526ad..dc2125935 100644 --- a/src/http/modules/perl/ngx_http_perl_module.c +++ b/src/http/modules/perl/ngx_http_perl_module.c @@ -780,6 +780,10 @@ ngx_http_perl_call_handler(pTHX_ ngx_http_request_t *r, ctx->redirect_uri.len = 0; + if (ctx->header_sent) { + return NGX_ERROR; + } + return NGX_HTTP_INTERNAL_SERVER_ERROR; } -- cgit v1.2.3