src/http/modules/ngx_http_log_module.c:1669: error: Integer Overflow L2
  ([0, 9223372036854775800] + [0, 9]):signed64 by call to `ngx_atoi`.

src/http/modules/ngx_http_log_module.c:1667:13: Unknown value from: strncmp
1665.     for (i = 1; i < cf->args->nelts; i++) {
1666. 
1667.         if (ngx_strncmp(value[i].data, "max=", 4) == 0) {
                  ^
1668. 
1669.             max = ngx_atoi(value[i].data + 4, value[i].len - 4);

src/http/modules/ngx_http_log_module.c:1669:19: Call
1667.         if (ngx_strncmp(value[i].data, "max=", 4) == 0) {
1668. 
1669.             max = ngx_atoi(value[i].data + 4, value[i].len - 4);
                        ^
1670.             if (max == NGX_ERROR) {
1671.                 goto failed;

src/core/ngx_string.c:910:5: <LHS trace>
908.     }
909. 
910.     cutoff = NGX_MAX_INT_T_VALUE / 10;
         ^
911.     cutlim = NGX_MAX_INT_T_VALUE % 10;
912. 

src/core/ngx_string.c:910:5: Assignment
  908.     }
  909. 
  910.     cutoff = NGX_MAX_INT_T_VALUE / 10;
           ^
  911.     cutlim = NGX_MAX_INT_T_VALUE % 10;
  912. 

src/core/ngx_string.c:901:1: <RHS trace>
899. 
900. 
901. ngx_int_t
     ^
902. ngx_atoi(u_char *line, size_t n)
903. {

src/core/ngx_string.c:901:1: Parameter `*line`
  899. 
  900. 
  901. ngx_int_t
       ^
  902. ngx_atoi(u_char *line, size_t n)
  903. {

src/core/ngx_string.c:922:9: Binary operation: ([0, 9223372036854775800] + [0, 9]):signed64 by call to `ngx_atoi` 
  920.         }
  921. 
  922.         value = value * 10 + (*line - '0');
               ^
  923.     }
  924. 

ngx_int_t
ngx_atoi(u_char *line, size_t n)
{
    ngx_int_t  value, cutoff, cutlim;
    if (n == 0) {
        return NGX_ERROR;
    }
    cutoff = NGX_MAX_INT_T_VALUE / 10;
    cutlim = NGX_MAX_INT_T_VALUE % 10;
    for (value = 0; n--; line++) {
        if (*line < '0' || *line > '9') {
            return NGX_ERROR;
        }
        if (value >= cutoff && (value > cutoff || *line - '0' > cutlim)) {
            return NGX_ERROR;
        }
        value = value * 10 + (*line - '0');
    }
    return value;
}
['static char *\nngx_http_log_open_file_cache(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)\n{\n    ngx_http_log_loc_conf_t *llcf = conf;\n    time_t       inactive, valid;\n    ngx_str_t   *value, s;\n    ngx_int_t    max, min_uses;\n    ngx_uint_t   i;\n    if (llcf->open_file_cache != NGX_CONF_UNSET_PTR) {\n        return "is duplicate";\n    }\n    value = cf->args->elts;\n    max = 0;\n    inactive = 10;\n    valid = 60;\n    min_uses = 1;\n    for (i = 1; i < cf->args->nelts; i++) {\n        if (ngx_strncmp(value[i].data, "max=", 4) == 0) {\n            max = ngx_atoi(value[i].data + 4, value[i].len - 4);\n            if (max == NGX_ERROR) {\n                goto failed;\n            }\n            continue;\n        }\n        if (ngx_strncmp(value[i].data, "inactive=", 9) == 0) {\n            s.len = value[i].len - 9;\n            s.data = value[i].data + 9;\n            inactive = ngx_parse_time(&s, 1);\n            if (inactive == (time_t) NGX_ERROR) {\n                goto failed;\n            }\n            continue;\n        }\n        if (ngx_strncmp(value[i].data, "min_uses=", 9) == 0) {\n            min_uses = ngx_atoi(value[i].data + 9, value[i].len - 9);\n            if (min_uses == NGX_ERROR) {\n                goto failed;\n            }\n            continue;\n        }\n        if (ngx_strncmp(value[i].data, "valid=", 6) == 0) {\n            s.len = value[i].len - 6;\n            s.data = value[i].data + 6;\n            valid = ngx_parse_time(&s, 1);\n            if (valid == (time_t) NGX_ERROR) {\n                goto failed;\n            }\n            continue;\n        }\n        if (ngx_strcmp(value[i].data, "off") == 0) {\n            llcf->open_file_cache = NULL;\n            continue;\n        }\n    failed:\n        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,\n                           "invalid \\"open_log_file_cache\\" parameter \\"%V\\"",\n                           &value[i]);\n        return NGX_CONF_ERROR;\n    }\n    if (llcf->open_file_cache == NULL) {\n        return NGX_CONF_OK;\n    }\n    if (max == 0) {\n        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,\n                        "\\"open_log_file_cache\\" must have \\"max\\" parameter");\n        return NGX_CONF_ERROR;\n    }\n    llcf->open_file_cache = ngx_open_file_cache_init(cf->pool, max, inactive);\n    if (llcf->open_file_cache) {\n        llcf->open_file_cache_valid = valid;\n        llcf->open_file_cache_min_uses = min_uses;\n        return NGX_CONF_OK;\n    }\n    return NGX_CONF_ERROR;\n}', "ngx_int_t\nngx_atoi(u_char *line, size_t n)\n{\n    ngx_int_t  value, cutoff, cutlim;\n    if (n == 0) {\n        return NGX_ERROR;\n    }\n    cutoff = NGX_MAX_INT_T_VALUE / 10;\n    cutlim = NGX_MAX_INT_T_VALUE % 10;\n    for (value = 0; n--; line++) {\n        if (*line < '0' || *line > '9') {\n            return NGX_ERROR;\n        }\n        if (value >= cutoff && (value > cutoff || *line - '0' > cutlim)) {\n            return NGX_ERROR;\n        }\n        value = value * 10 + (*line - '0');\n    }\n    return value;\n}"]