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

src/http/modules/ngx_http_split_clients_module.c:225:13: Call
223.         }
224. 
225.         n = ngx_atofp(value[0].data, value[0].len - 1, 2);
                 ^
226.         if (n == NGX_ERROR || n == 0) {
227.             goto invalid;

src/core/ngx_string.c:941:5: <LHS trace>
939.     }
940. 
941.     cutoff = NGX_MAX_INT_T_VALUE / 10;
         ^
942.     cutlim = NGX_MAX_INT_T_VALUE % 10;
943. 

src/core/ngx_string.c:941:5: Assignment
  939.     }
  940. 
  941.     cutoff = NGX_MAX_INT_T_VALUE / 10;
           ^
  942.     cutlim = NGX_MAX_INT_T_VALUE % 10;
  943. 

src/core/ngx_string.c:931:1: <RHS trace>
929. /* parse a fixed point number, e.g., ngx_atofp("10.5", 4, 2) returns 1050 */
930. 
931. ngx_int_t
     ^
932. ngx_atofp(u_char *line, size_t n, size_t point)
933. {

src/core/ngx_string.c:931:1: Parameter `*line`
  929. /* parse a fixed point number, e.g., ngx_atofp("10.5", 4, 2) returns 1050 */
  930. 
  931. ngx_int_t
       ^
  932. ngx_atofp(u_char *line, size_t n, size_t point)
  933. {

src/core/ngx_string.c:969:9: Binary operation: ([0, 9223372036854775800] + [0, 9]):signed64 by call to `ngx_atofp` 
  967.         }
  968. 
  969.         value = value * 10 + (*line - '0');
               ^
  970.         point -= dot;
  971.     }

ngx_int_t
ngx_atofp(u_char *line, size_t n, size_t point)
{
    ngx_int_t   value, cutoff, cutlim;
    ngx_uint_t  dot;
    if (n == 0) {
        return NGX_ERROR;
    }
    cutoff = NGX_MAX_INT_T_VALUE / 10;
    cutlim = NGX_MAX_INT_T_VALUE % 10;
    dot = 0;
    for (value = 0; n--; line++) {
        if (point == 0) {
            return NGX_ERROR;
        }
        if (*line == '.') {
            if (dot) {
                return NGX_ERROR;
            }
            dot = 1;
            continue;
        }
        if (*line < '0' || *line > '9') {
            return NGX_ERROR;
        }
        if (value >= cutoff && (value > cutoff || *line - '0' > cutlim)) {
            return NGX_ERROR;
        }
        value = value * 10 + (*line - '0');
        point -= dot;
    }
    while (point--) {
        if (value > cutoff) {
            return NGX_ERROR;
        }
        value = value * 10;
    }
    return value;
}
['static char *\nngx_http_split_clients(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)\n{\n    ngx_int_t                       n;\n    ngx_str_t                      *value;\n    ngx_http_split_clients_ctx_t   *ctx;\n    ngx_http_split_clients_part_t  *part;\n    ctx = cf->ctx;\n    value = cf->args->elts;\n    part = ngx_array_push(&ctx->parts);\n    if (part == NULL) {\n        return NGX_CONF_ERROR;\n    }\n    if (value[0].len == 1 && value[0].data[0] == \'*\') {\n        part->percent = 0;\n    } else {\n        if (value[0].len == 0 || value[0].data[value[0].len - 1] != \'%\') {\n            goto invalid;\n        }\n        n = ngx_atofp(value[0].data, value[0].len - 1, 2);\n        if (n == NGX_ERROR || n == 0) {\n            goto invalid;\n        }\n        part->percent = (uint32_t) n;\n    }\n    part->value.len = value[1].len;\n    part->value.valid = 1;\n    part->value.no_cacheable = 0;\n    part->value.not_found = 0;\n    part->value.data = value[1].data;\n    return NGX_CONF_OK;\ninvalid:\n    ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,\n                       "invalid percent value \\"%V\\"", &value[0]);\n    return NGX_CONF_ERROR;\n}', "ngx_int_t\nngx_atofp(u_char *line, size_t n, size_t point)\n{\n    ngx_int_t   value, cutoff, cutlim;\n    ngx_uint_t  dot;\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    dot = 0;\n    for (value = 0; n--; line++) {\n        if (point == 0) {\n            return NGX_ERROR;\n        }\n        if (*line == '.') {\n            if (dot) {\n                return NGX_ERROR;\n            }\n            dot = 1;\n            continue;\n        }\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        point -= dot;\n    }\n    while (point--) {\n        if (value > cutoff) {\n            return NGX_ERROR;\n        }\n        value = value * 10;\n    }\n    return value;\n}"]