<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><span style="line-height: 1.7;"># HG changeset patch</span><br><div><div># User FengGu <<a href="mailto:flygoast@126.com">flygoast@126.com</a>></div><div># Date 1392981015 -28800</div><div>#          Fri Feb 21 19:10:15 2014 +0800</div><div># Node ID 2dd8fd75f1646336b21cb2f4506f1d45b8771e56</div><div># Parent  545a4d393e2fb8d5448dad89d25a110fa72e71d1</div><div>Fixed segmentation fault with error_page for 400 to named location</div><div><br></div><div>When using error_page for code 400 to named location, the bad request's uri</div><div>would be { 0, NULL }, it would result in segmentation fault in</div><div>ngx_http_index_handler() and so on.</div><div><br></div><div>diff -r 545a4d393e2f -r 2dd8fd75f164 src/http/ngx_http_core_module.c</div><div>--- a/src/http/ngx_http_core_module.c   Thu Feb 20 17:27:09 2014 +0400</div><div>+++ b/src/http/ngx_http_core_module.c   Fri Feb 21 19:10:15 2014 +0800</div><div>@@ -2651,6 +2651,12 @@</div><div>                            "using location: %V \"%V?%V\"",</div><div>                            name, &r->uri, &r->args);</div><div><br></div><div>+            if (r->uri.len == 0) {</div><div>+                ngx_log_error(NGX_LOG_INFO, r->connection->log, 0,</div><div>+                              "using \"/\" as uri for bad request");</div><div>+                ngx_str_set(&r->uri, "/");</div><div>+            }</div><div>+</div><div>             r->internal = 1;</div><div>             r->content_handler = NULL;</div><div>             r->uri_changed = 0;</div></div></div></div>