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