crypto/bn/bn_exp.c:348: error: BUFFER_OVERRUN_L3
  Offset: [7, +oo] (⇐ [0, +oo] + 7) Size: [0, +oo] by call to `BN_mod_mul_montgomery`.
Showing all 13 steps of the trace


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 `*rem->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 `*rm->d`
    118.   #else
    119.   
    120. > int BN_div(BIGNUM *dv, BIGNUM *rm, BIGNUM *num, BIGNUM *divisor,
    121.   	     BN_CTX *ctx)
    122.   	{

crypto/bn/bn_exp.c:348:7: Call
346.   	else
347.   		aa=a;
348.   	if (!BN_to_montgomery(&(val[0]),aa,mont,ctx)) goto err; /* 1 */
             ^
349.   	if (!BN_mod_mul_montgomery(d,&(val[0]),&(val[0]),mont,ctx)) goto err; /* 2 */
350.   

crypto/bn/bn_mont.c:71:1: Parameter `*r->d`
  69.   #define MONT_WORD
  70.   
  71. > int BN_mod_mul_montgomery(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_MONT_CTX *mont,
  72.   	     BN_CTX *ctx)
  73.   	{

crypto/bn/bn_mont.c:101:7: Call
  99.   		}
  100.   	/* reduce from aRR to aR */
  101.   	if (!BN_from_montgomery(r,tmp,mont,ctx)) goto err;
               ^
  102.   	ctx->tos-=2;
  103.   	return(1);

crypto/bn/bn_mont.c:108:1: Parameter `*ret->d`
    106.   	}
    107.   
    108. > int BN_from_montgomery(BIGNUM *ret, BIGNUM *a, BN_MONT_CTX *mont,
    109.   	     BN_CTX *ctx)
    110.   	{

crypto/bn/bn_mont.c:134:7: Call
    132.   		max=(nl+al+1); /* allow for overflow (no?) XXX */
    133.   		if (bn_wexpand(r,max) == NULL) goto err1;
    134.   		if (bn_wexpand(ret,max) == NULL) goto err1;
                 ^
    135.   
    136.   		r->neg=a->neg^n->neg;

crypto/bn/bn_lib.c:344:1: <Length trace>
342.   	}
343.   
344. > BIGNUM *bn_expand2(BIGNUM *b, int words)
345.   	{
346.   	BN_ULONG *A,*B,*a;

crypto/bn/bn_lib.c:344:1: Parameter `*b->d`
      342.   	}
      343.   
      344. > BIGNUM *bn_expand2(BIGNUM *b, int words)
      345.   	{
      346.   	BN_ULONG *A,*B,*a;

crypto/bn/bn_lib.c:367:3: Assignment
      365.   memset(A,0x5c,sizeof(BN_ULONG)*(words+1));
      366.   #if 1
      367.   		B=b->d;
               ^
      368.   		/* Check if the previous number needs to be copied */
      369.   		if (B != NULL)

crypto/bn/bn_lib.c:377:43: Array access: Offset: [7, +oo] (⇐ [0, +oo] + 7) Size: [0, +oo] by call to `BN_mod_mul_montgomery` 
      375.   				{
      376.   				A[0]=B[0]; A[1]=B[1]; A[2]=B[2]; A[3]=B[3];
      377.   				A[4]=B[4]; A[5]=B[5]; A[6]=B[6]; A[7]=B[7];
                                                       ^
      378.   				A+=8;
      379.   				B+=8;
