changeset 7267:7c614ef3c6ea

Cache: fixed cache valid slot to reject incorrect statuses. Previously, result of ngx_atoi() was assigned to an ngx_uint_t variable, and errors reported by ngx_atoi() became positive, so the following check in "status < 100" failed to catch them. This resulted in the configurations like "proxy_cache_valid 2xx 30s" being accepted as correct, while they in fact do nothing. Changing type to ngx_int_t fixes this, and such configurations are now properly rejected.
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 18 Apr 2018 16:11:41 +0300
parents 1076268364ba
children 0d8c72ff62dd
files src/http/ngx_http_file_cache.c
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/ngx_http_file_cache.c
+++ b/src/http/ngx_http_file_cache.c
@@ -2620,7 +2620,8 @@ ngx_http_file_cache_valid_set_slot(ngx_c
 
     time_t                    valid;
     ngx_str_t                *value;
-    ngx_uint_t                i, n, status;
+    ngx_int_t                 status;
+    ngx_uint_t                i, n;
     ngx_array_t             **a;
     ngx_http_cache_valid_t   *v;
     static ngx_uint_t         statuses[] = { 200, 301, 302 };