modules/http/http_protocol.c:1838: error: INTEGER_OVERFLOW_L2
  ([1, 64] - 4):unsigned64.

modules/http/http_protocol.c:1817:5: <LHS trace>
1815. {
1816.     long chunksize = 0;
1817.     size_t chunkbits = sizeof(long) * 8;
          ^
1818. 
1819.     /* Skip leading zeros */

modules/http/http_protocol.c:1817:5: Assignment
1815. {
1816.     long chunksize = 0;
1817.     size_t chunkbits = sizeof(long) * 8;
          ^
1818. 
1819.     /* Skip leading zeros */

modules/http/http_protocol.c:1838:9: Binary operation: ([1, 64] - 4):unsigned64
1836. 
1837.         chunksize = (chunksize << 4) | xvalue;
1838.         chunkbits -= 4;
              ^
1839.         ++b;
1840.     }

static long get_chunk_size(char *b)
{
    long chunksize = 0;
    size_t chunkbits = sizeof(long) * 8;
    while (*b == '0') {
        ++b;
    }
    while (apr_isxdigit(*b) && (chunkbits > 0)) {
        int xvalue = 0;
        if (*b >= '0' && *b <= '9') {
            xvalue = *b - '0';
        }
        else if (*b >= 'A' && *b <= 'F') {
            xvalue = *b - 'A' + 0xa;
        }
        else if (*b >= 'a' && *b <= 'f') {
            xvalue = *b - 'a' + 0xa;
        }
        chunksize = (chunksize << 4) | xvalue;
        chunkbits -= 4;
        ++b;
    }
    if (apr_isxdigit(*b) && (chunkbits <= 0)) {
        return -1;
    }
    return chunksize;
}
["static long get_chunk_size(char *b)\n{\n    long chunksize = 0;\n    size_t chunkbits = sizeof(long) * 8;\n    while (*b == '0') {\n        ++b;\n    }\n    while (apr_isxdigit(*b) && (chunkbits > 0)) {\n        int xvalue = 0;\n        if (*b >= '0' && *b <= '9') {\n            xvalue = *b - '0';\n        }\n        else if (*b >= 'A' && *b <= 'F') {\n            xvalue = *b - 'A' + 0xa;\n        }\n        else if (*b >= 'a' && *b <= 'f') {\n            xvalue = *b - 'a' + 0xa;\n        }\n        chunksize = (chunksize << 4) | xvalue;\n        chunkbits -= 4;\n        ++b;\n    }\n    if (apr_isxdigit(*b) && (chunkbits <= 0)) {\n        return -1;\n    }\n    return chunksize;\n}"]