Bug report: missing SCARCE string in nginx-1.1.15/src/http/ngx_http_file_cache.c [patch]
Maxim Dounin
mdounin at mdounin.ru
Thu Feb 16 10:07:58 UTC 2012
Hello!
On Thu, Feb 16, 2012 at 01:08:58PM +0400, Max wrote:
>
> Hello,
>
> the value of the NGX_HTTP_CACHE_SCARCE cache status is defined in
> nginx-1.1.15/src/http/ngx_http_cache.h, but unlike the other cache
> status strings, it's missing from nginx-1.1.15/src/http/ngx_http_file_cache.c.
>
> The function ngx_http_upstream_cache_status() in
> nginx-1.1.15/src/http/ngx_http_upstream.c references the status
> strings directly as ngx_http_cache_status[n].len, so with the
> SCARCE cache status string missing, this is a segmentation violation
> waiting to happen.
>
> Here's the patch to fix the problem:
>
> <patch>
> --- src/http/ngx_http_file_cache.c.orig 2012-02-16 00:18:21.000000000 -0800
> +++ src/http/ngx_http_file_cache.c 2012-02-16 00:25:00.000000000 -0800
> @@ -53,7 +53,8 @@
> ngx_string("EXPIRED"),
> ngx_string("STALE"),
> ngx_string("UPDATING"),
> - ngx_string("HIT")
> + ngx_string("HIT"),
> + ngx_string("SCARCE")
> };
> ---</patch>
The NGX_HTTP_CACHE_SCARCE value can't appear in u->cache_status,
and hence there is no real problem. It's a special value used by
cache to inform upstream that there is no cached response (i.e.
MISS cache status) and cacheing should be enabled due to min_uses
preventing it.
Maxim Dounin
More information about the nginx
mailing list