crypto/bn/bn_mont.c:339: error: BUFFER_OVERRUN_L3
  Offset: [3, +oo] (⇐ [0, +oo] + 3) Size: [0, +oo] by call to `BN_sub_word`.
Showing all 13 steps of the trace


crypto/bn/bn_mont.c:333:8: Call
331.   		tmod.neg=mod->neg;
332.   
333.   		if ((BN_mod_inverse(&Ri,R,&tmod,ctx)) == NULL)
              ^
334.   			goto err;
335.   		BN_lshift(&Ri,&Ri,BN_BITS2);			/* R*Ri */

crypto/bn/bn_gcd.c:143:1: Parameter `*in->d`
  141.   
  142.   /* solves ax == 1 (mod n) */
  143. > BIGNUM *BN_mod_inverse(BIGNUM *in, BIGNUM *a, const BIGNUM *n, BN_CTX *ctx)
  144.   	{
  145.   	BIGNUM *A,*B,*X,*Y,*M,*D,*R;

crypto/bn/bn_mont.c:335:3: Call
333.   		if ((BN_mod_inverse(&Ri,R,&tmod,ctx)) == NULL)
334.   			goto err;
335.   		BN_lshift(&Ri,&Ri,BN_BITS2);			/* R*Ri */
         ^
336.   		if (!BN_is_zero(&Ri))
337.   			{

crypto/bn/bn_shift.c:124:1: Parameter `*r->d`
  122.   	}
  123.   
  124. > int BN_lshift(BIGNUM *r, const BIGNUM *a, int n)
  125.   	{
  126.   	int i,nw,lb,rb;

crypto/bn/bn_mont.c:339:4: Call
337.   			{
338.   #if 1
339.   			BN_sub_word(&Ri,1);
          ^
340.   #else
341.   			BN_usub(&Ri,&Ri,BN_value_one());	/* R*Ri - 1 */

crypto/bn/bn_word.c:139:1: Parameter `*a->d`
  137.   	}
  138.   
  139. > int BN_sub_word(BIGNUM *a, BN_ULONG w)
  140.   	{
  141.   	int i;

crypto/bn/bn_word.c:146:5: Call
  144.   		{
  145.   		a->neg=0;
  146.   		i=BN_add_word(a,w);
             ^
  147.   		a->neg=1;
  148.   		return(i);

crypto/bn/bn_word.c:108:1: Parameter `*a->d`
    106.   	}
    107.   
    108. > int BN_add_word(BIGNUM *a, BN_ULONG w)
    109.   	{
    110.   	BN_ULONG l;

crypto/bn/bn_word.c:122:6: Call
    120.   		}
    121.   	w&=BN_MASK2;
    122.   	if (bn_wexpand(a,a->top+1) == NULL) return(0);
                ^
    123.   	i=0;
    124.   	for (;;)

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

crypto/bn/bn_lib.c:367:3: Assignment
      365.   			}
      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:447:35: Array access: Offset: [3, +oo] (⇐ [0, +oo] + 3) Size: [0, +oo] by call to `BN_sub_word` 
      445.   				 */
      446.   				BN_ULONG a0,a1,a2,a3;
      447.   				a0=B[0]; a1=B[1]; a2=B[2]; a3=B[3];
                                               ^
      448.   				A[0]=a0; A[1]=a1; A[2]=a2; A[3]=a3;
      449.   				}
