<div dir="ltr"><div>Thanks Maxim for the quick fix!</div><div>Based on <a href="https://tools.ietf.org/html/rfc6585#section-5">https://tools.ietf.org/html/rfc6585#section-5</a> , shall we by default return 431 instead of 400?<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Feb 3, 2020 at 8:47 AM Maxim Dounin <<a href="mailto:mdounin@mdounin.ru">mdounin@mdounin.ru</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello!<br>
<br>
On Sun, Feb 02, 2020 at 11:09:14PM -0800, Frank Liu wrote:<br>
<br>
> When I send a request with too longer header value to nginx 1.16.1, I get<br>
> 400 Bad Request response code and default nginx error page.<br>
> If I create a custom error page:<br>
> error_page 494 /my4xx.html;<br>
> now I can see my error page but the http response code becomes 494. Is that<br>
> a bug?<br>
> Shall I see 400 instead?<br>
<br>
Yes.  And this is what happens with 495, 496, and 497.  The <br>
following patch should fix this:<br>
<br>
# HG changeset patch<br>
# User Maxim Dounin <<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>><br>
# Date 1580748298 -10800<br>
#      Mon Feb 03 19:44:58 2020 +0300<br>
# Node ID 7b48f7d056af4ce5a681b97f9f31702adb1f87f8<br>
# Parent  b8a512c6466c3b2f77876edf14061c5d97e6159f<br>
Added default overwrite in error_page 494.<br>
<br>
We used to have default error_page overwrite for 495, 496, and 497, so<br>
a configuration like<br>
<br>
    error_page 495 /error;<br>
<br>
will result in error 400, much like without any error_page configured.<br>
<br>
The 494 status code was introduced later (in 3848:de59ad6bf557, nginx 0.9.4),<br>
and relevant changes to ngx_http_core_error_page() were missed, resulting<br>
in inconsistent behaviour of "error_page 494" - with error_page configured<br>
it results in 494 being returned instead of 400.<br>
<br>
Reported by Frank Liu,<br>
<a href="http://mailman.nginx.org/pipermail/nginx/2020-February/058957.html" rel="noreferrer" target="_blank">http://mailman.nginx.org/pipermail/nginx/2020-February/058957.html</a>.<br>
<br>
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c<br>
--- a/src/http/ngx_http_core_module.c<br>
+++ b/src/http/ngx_http_core_module.c<br>
@@ -4689,6 +4689,7 @@ ngx_http_core_error_page(ngx_conf_t *cf,<br>
                 case NGX_HTTP_TO_HTTPS:<br>
                 case NGX_HTTPS_CERT_ERROR:<br>
                 case NGX_HTTPS_NO_CERT:<br>
+                case NGX_HTTP_REQUEST_HEADER_TOO_LARGE:<br>
                     err->overwrite = NGX_HTTP_BAD_REQUEST;<br>
             }<br>
         }<br>
<br>
<br>
-- <br>
Maxim Dounin<br>
<a href="http://mdounin.ru/" rel="noreferrer" target="_blank">http://mdounin.ru/</a><br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</blockquote></div>