comparison src/http/ngx_http_cache.h @ 7704:847fd35f94de

Cache: reset c->body_start when reading a variant on Vary mismatch. Previously, a variant not present in shared memory and stored on disk using a secondary key was read using c->body_start from a variant stored with a main key. This could result in critical errors "cache file .. has too long header".
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 04 Aug 2017 19:37:37 +0300
parents ccb5ff87ab3e
children 3781de64e747
comparison
equal deleted inserted replaced
7703:da5e3f5b1673 7704:847fd35f94de
78 78
79 ngx_str_t etag; 79 ngx_str_t etag;
80 ngx_str_t vary; 80 ngx_str_t vary;
81 u_char variant[NGX_HTTP_CACHE_KEY_LEN]; 81 u_char variant[NGX_HTTP_CACHE_KEY_LEN];
82 82
83 size_t buffer_size;
83 size_t header_start; 84 size_t header_start;
84 size_t body_start; 85 size_t body_start;
85 off_t length; 86 off_t length;
86 off_t fs_size; 87 off_t fs_size;
87 88