[PATCH] Cache: status must be less then 599 in *_cache_valid directives.

Gena Makhomed gmm at csdoc.com
Mon Sep 24 17:34:37 UTC 2018


On 24.09.2018 19:25, Maxim Dounin wrote:

>> What about adding 307 and 308 to list of default response codes?

> I'm not a fan of the "proxy_cache_valid 5m" form for the very same
> reasons, and would rather avoid changing it.

Ok. What about more strict check for invalid status codes?

# HG changeset patch
# User Gena Makhomed <gmm at csdoc.com>
# Date 1537810006 -10800
#      Mon Sep 24 20:26:46 2018 +0300
# Node ID fc6c7e03edaad907d6a85afab009cb5c1fa43c56
# Parent  17092295247709a533acca09f990c13337a24948
Cache: status must be less then 599 in *_cache_valid directives.

Previously, configurations with typo, for example

     fastcgi_cache_valid 200301 302 5m;

successfully pass configuration test. Adding check for status
codes > 599, and such configurations are now properly rejected.

diff -r 170922952477 -r fc6c7e03edaa src/http/ngx_http_file_cache.c
--- a/src/http/ngx_http_file_cache.c	Wed Sep 19 09:26:47 2018 -0500
+++ b/src/http/ngx_http_file_cache.c	Mon Sep 24 20:26:46 2018 +0300
@@ -2669,7 +2669,7 @@
          } else {

              status = ngx_atoi(value[i].data, value[i].len);
-            if (status < 100) {
+            if (status < 100 || status > 599) {
                  ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
                                     "invalid status \"%V\"", &value[i]);
                  return NGX_CONF_ERROR;


More information about the nginx-devel mailing list