crypto/bn/bntest.c:644: error: BUFFER_OVERRUN_L3
  Offset: [-1, +oo] Size: [0, +oo] by call to `BN_mod_exp`.
Showing all 16 steps of the trace


crypto/bn/bntest.c:642:3: Call
640.   		{
641.   		BN_rand(a,20+i*5,0,0); /**/
642.   		BN_rand(b,2+i,0,0); /**/
         ^
643.   
644.   		if (!BN_mod_exp(d,a,b,c,ctx))

crypto/bn/bn_rand.c:65:1: Parameter `rnd->top`
  63.   #include <openssl/rand.h>
  64.   
  65. > int BN_rand(BIGNUM *rnd, int bits, int top, int bottom)
  66.   	{
  67.   	unsigned char *buf=NULL;

crypto/bn/bntest.c:644:8: Call
642.   		BN_rand(b,2+i,0,0); /**/
643.   
644.   		if (!BN_mod_exp(d,a,b,c,ctx))
              ^
645.   			return(00);
646.   

crypto/bn/bn_exp.c:157:1: Parameter `*m->d`
  155.   	}
  156.   
  157. > int BN_mod_exp(BIGNUM *r, BIGNUM *a, BIGNUM *p, BIGNUM *m, BN_CTX *ctx)
  158.   	{
  159.   	int ret;

crypto/bn/bn_exp.c:173:9: Call
  171.   
  172.   	if (BN_is_odd(m))
  173.   		{ ret=BN_mod_exp_mont(r,a,p,m,ctx,NULL); }
                 ^
  174.   	else
  175.   #endif

crypto/bn/bn_exp.c:299:1: Parameter `*m->d`
    297.   
    298.   /* #ifdef MONT_MUL_MOD */
    299. > int BN_mod_exp_mont(BIGNUM *rr, BIGNUM *a, BIGNUM *p, BIGNUM *m, BN_CTX *ctx,
    300.   	     BN_MONT_CTX *in_mont)
    301.   	{

crypto/bn/bn_exp.c:343:3: Call
    341.   	if (BN_ucmp(a,m) >= 0)
    342.   		{
    343.   		BN_mod(&(val[0]),a,m,ctx);
             ^
    344.   		aa= &(val[0]);
    345.   		}

crypto/bn/bn_div.c:286:1: Parameter `*d->d`
      284.   
      285.   /* rem != m */
      286. > int BN_mod(BIGNUM *rem, BIGNUM *m, BIGNUM *d, BN_CTX *ctx)
      287.   	{
      288.   #if 0 /* The old slow way */

crypto/bn/bn_div.c:312:9: Call
      310.   	return(1);
      311.   #else
      312.   	return(BN_div(NULL,rem,m,d,ctx));
                     ^
      313.   #endif
      314.   	}

crypto/bn/bn_div.c:120:1: Parameter `*divisor->d`
        118.   #else
        119.   
        120. > int BN_div(BIGNUM *dv, BIGNUM *rm, BIGNUM *num, BIGNUM *divisor,
        121.   	     BN_CTX *ctx)
        122.   	{

crypto/bn/bn_div.c:155:24: Call
        153.   
        154.   	/* First we normalise the numbers */
        155.   	norm_shift=BN_BITS2-((BN_num_bits(divisor))%BN_BITS2);
                                      ^
        156.   	BN_lshift(sdiv,divisor,norm_shift);
        157.   	sdiv->neg=0;

crypto/bn/bn_lib.c:238:1: <Offset trace>
236.   	}
237.   
238. > int BN_num_bits(BIGNUM *a)
239.   	{
240.   	BN_ULONG l;

crypto/bn/bn_lib.c:238:1: Parameter `a->top`
          236.   	}
          237.   
          238. > int BN_num_bits(BIGNUM *a)
          239.   	{
          240.   	BN_ULONG l;

crypto/bn/bn_lib.c:238:1: <Length trace>
236.   	}
237.   
238. > int BN_num_bits(BIGNUM *a)
239.   	{
240.   	BN_ULONG l;

crypto/bn/bn_lib.c:238:1: Parameter `*a->d`
          236.   	}
          237.   
          238. > int BN_num_bits(BIGNUM *a)
          239.   	{
          240.   	BN_ULONG l;

crypto/bn/bn_lib.c:246:4: Array access: Offset: [-1, +oo] Size: [0, +oo] by call to `BN_mod_exp` 
          244.   
          245.   	if (a->top == 0) return(0);
          246.   	l=a->d[a->top-1];
                    ^
          247.   	i=(a->top-1)*BN_BITS2;
          248.   	if (l == 0)
