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


test/bntest.c:1578:11: Call
1576.       int ret, st = 0;
1577.   
1578.       ret = parseBN(&bn, "0");
                  ^
1579.       if (ret != 1 || !BN_is_zero(bn) || BN_is_negative(bn)) {
1580.           fprintf(stderr, "BN_hex2bn(0) gave a bad result.\n");

test/bntest.c:92:1: Parameter `*in`
  90.    * Parse BIGNUM, return number of bytes parsed.
  91.    */
  92. > static int parseBN(BIGNUM **out, const char *in)
  93.   {
  94.       *out = NULL;

test/bntest.c:95:12: Call
  93.   {
  94.       *out = NULL;
  95.       return BN_hex2bn(out, in);
                   ^
  96.   }
  97.   

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

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

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:141:37: Array access: Offset: [0, 536870912] (⇐ [0, 1] + [0, 536870911]) Size: 2 by call to `parseBN` 
    139.       }
    140.   
    141.       for (i = 0; i <= (INT_MAX/4) && isxdigit((unsigned char)a[i]); i++)
                                               ^
    142.           continue;
    143.   
