test/bntest.c:1581: error: BUFFER_OVERRUN_L2
  Offset: [-15, 536870911] (⇐ [0, 1] + [-15, 536870910]) Size: 2 by call to `parseBN`.
Showing all 9 steps of the trace


test/bntest.c:1581:10: Call
1579.       int st = 0;
1580.   
1581.       if (!TEST_int_eq(parseBN(&bn, "0"), 1)
                 ^
1582.               || !TEST_BN_eq_zero(bn)
1583.               || !TEST_BN_ge_zero(bn)

test/bntest.c:85:1: Parameter `*in`
  83.    * Parse BIGNUM, return number of bytes parsed.
  84.    */
  85. > static int parseBN(BIGNUM **out, const char *in)
  86.   {
  87.       *out = NULL;

test/bntest.c:88:12: Call
  86.   {
  87.       *out = NULL;
  88.       return BN_hex2bn(out, in);
                   ^
  89.   }
  90.   

crypto/bn/bn_print.c:141:10: <Offset trace>
139.       }
140.   
141.       for (i = 0; i <= INT_MAX / 4 && ossl_isxdigit(a[i]); i++)
                ^
142.           continue;
143.   

crypto/bn/bn_print.c:141:10: Assignment
    139.       }
    140.   
    141.       for (i = 0; i <= INT_MAX / 4 && ossl_isxdigit(a[i]); i++)
                    ^
    142.           continue;
    143.   

crypto/bn/bn_print.c:164:5: Assignment
    162.           goto err;
    163.   
    164.       j = i;                      /* least significant 'hex' */
               ^
    165.       m = 0;
    166.       h = 0;

crypto/bn/bn_print.c:126:1: <Length trace>
124.   }
125.   
126. > int BN_hex2bn(BIGNUM **bn, const char *a)
127.   {
128.       BIGNUM *ret = NULL;

crypto/bn/bn_print.c:126:1: Parameter `*a`
    124.   }
    125.   
    126. > int BN_hex2bn(BIGNUM **bn, const char *a)
    127.   {
    128.       BIGNUM *ret = NULL;

crypto/bn/bn_print.c:171:17: Array access: Offset: [-15, 536870911] (⇐ [0, 1] + [-15, 536870910]) Size: 2 by call to `parseBN` 
    169.           l = 0;
    170.           for (;;) {
    171.               c = a[j - m];
                           ^
    172.               k = OPENSSL_hexchar2int(c);
    173.               if (k < 0)
