src/http/ngx_http_file_cache.c:1171: error: Integer Overflow L2
  ([0, +oo] - 1):unsigned32 by call to `ngx_http_file_cache_update_variant`.

src/http/ngx_http_file_cache.c:1171:9: Call
1169.     }
1170. 
1171.     if (ngx_http_file_cache_update_variant(r, c) != NGX_OK) {
              ^
1172.         return NGX_ERROR;
1173.     }

src/http/ngx_http_file_cache.c:1190:1: <LHS trace>
1188. 
1189. 
1190. static ngx_int_t
      ^
1191. ngx_http_file_cache_update_variant(ngx_http_request_t *r, ngx_http_cache_t *c)
1192. {

src/http/ngx_http_file_cache.c:1190:1: Parameter `c->node->count`
  1188. 
  1189. 
  1190. static ngx_int_t
        ^
  1191. ngx_http_file_cache_update_variant(ngx_http_request_t *r, ngx_http_cache_t *c)
  1192. {

src/http/ngx_http_file_cache.c:1217:5: Binary operation: ([0, +oo] - 1):unsigned32 by call to `ngx_http_file_cache_update_variant` 
  1215.     ngx_shmtx_lock(&cache->shpool->mutex);
  1216. 
  1217.     c->node->count--;
            ^
  1218.     c->node->updating = 0;
  1219.     c->node = NULL;

static ngx_int_t
ngx_http_file_cache_update_variant(ngx_http_request_t *r, ngx_http_cache_t *c)
{
    ngx_http_file_cache_t  *cache;
    if (!c->secondary) {
        return NGX_OK;
    }
    if (c->vary.len
        && ngx_memcmp(c->variant, c->key, NGX_HTTP_CACHE_KEY_LEN) == 0)
    {
        return NGX_OK;
    }
    cache = c->file_cache;
    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
                   "http file cache main key");
    ngx_shmtx_lock(&cache->shpool->mutex);
    c->node->count--;
    c->node->updating = 0;
    c->node = NULL;
    ngx_shmtx_unlock(&cache->shpool->mutex);
    c->file.name.len = 0;
    ngx_memcpy(c->key, c->main, NGX_HTTP_CACHE_KEY_LEN);
    if (ngx_http_file_cache_exists(cache, c) == NGX_ERROR) {
        return NGX_ERROR;
    }
    if (ngx_http_file_cache_name(r, cache->path) != NGX_OK) {
        return NGX_ERROR;
    }
    return NGX_OK;
}
['ngx_int_t\nngx_http_file_cache_set_header(ngx_http_request_t *r, u_char *buf)\n{\n    ngx_http_file_cache_header_t  *h = (ngx_http_file_cache_header_t *) buf;\n    u_char            *p;\n    ngx_str_t         *key;\n    ngx_uint_t         i;\n    ngx_http_cache_t  *c;\n    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,\n                   "http file cache set header");\n    c = r->cache;\n    ngx_memzero(h, sizeof(ngx_http_file_cache_header_t));\n    h->version = NGX_HTTP_CACHE_VERSION;\n    h->valid_sec = c->valid_sec;\n    h->last_modified = c->last_modified;\n    h->date = c->date;\n    h->crc32 = c->crc32;\n    h->valid_msec = (u_short) c->valid_msec;\n    h->header_start = (u_short) c->header_start;\n    h->body_start = (u_short) c->body_start;\n    if (c->etag.len <= NGX_HTTP_CACHE_ETAG_LEN) {\n        h->etag_len = (u_char) c->etag.len;\n        ngx_memcpy(h->etag, c->etag.data, c->etag.len);\n    }\n    if (c->vary.len) {\n        if (c->vary.len > NGX_HTTP_CACHE_VARY_LEN) {\n            c->vary.len = NGX_HTTP_CACHE_VARY_LEN;\n        }\n        h->vary_len = (u_char) c->vary.len;\n        ngx_memcpy(h->vary, c->vary.data, c->vary.len);\n        ngx_http_file_cache_vary(r, c->vary.data, c->vary.len, c->variant);\n        ngx_memcpy(h->variant, c->variant, NGX_HTTP_CACHE_KEY_LEN);\n    }\n    if (ngx_http_file_cache_update_variant(r, c) != NGX_OK) {\n        return NGX_ERROR;\n    }\n    p = buf + sizeof(ngx_http_file_cache_header_t);\n    p = ngx_cpymem(p, ngx_http_file_cache_key, sizeof(ngx_http_file_cache_key));\n    key = c->keys.elts;\n    for (i = 0; i < c->keys.nelts; i++) {\n        p = ngx_copy(p, key[i].data, key[i].len);\n    }\n    *p = LF;\n    return NGX_OK;\n}', 'static ngx_int_t\nngx_http_file_cache_update_variant(ngx_http_request_t *r, ngx_http_cache_t *c)\n{\n    ngx_http_file_cache_t  *cache;\n    if (!c->secondary) {\n        return NGX_OK;\n    }\n    if (c->vary.len\n        && ngx_memcmp(c->variant, c->key, NGX_HTTP_CACHE_KEY_LEN) == 0)\n    {\n        return NGX_OK;\n    }\n    cache = c->file_cache;\n    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,\n                   "http file cache main key");\n    ngx_shmtx_lock(&cache->shpool->mutex);\n    c->node->count--;\n    c->node->updating = 0;\n    c->node = NULL;\n    ngx_shmtx_unlock(&cache->shpool->mutex);\n    c->file.name.len = 0;\n    ngx_memcpy(c->key, c->main, NGX_HTTP_CACHE_KEY_LEN);\n    if (ngx_http_file_cache_exists(cache, c) == NGX_ERROR) {\n        return NGX_ERROR;\n    }\n    if (ngx_http_file_cache_name(r, cache->path) != NGX_OK) {\n        return NGX_ERROR;\n    }\n    return NGX_OK;\n}']