crypto/bn/bn_mont.c:333: error: BUFFER_OVERRUN_L1
  Offset: [3, +oo] (⇐ [0, +oo] + 3) Size: 2 by call to `BN_mod_inverse`.
Showing all 9 steps of the trace


crypto/bn/bn_mont.c:301:1: Array declaration
299.   	}
300.   
301. > int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx)
302.   	{
303.   	BIGNUM Ri,*R;

crypto/bn/bn_mont.c:328:3: Assignment
326.   		buf[0]=mod->d[0];
327.   		buf[1]=0;
328.   		tmod.d=buf;
         ^
329.   		tmod.top=1;
330.   		tmod.max=mod->max;

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 `*n->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_gcd.c:168:6: Call
  166.   	BN_one(Y);
  167.   	if (BN_copy(A,a) == NULL) goto err;
  168.   	if (BN_copy(B,n) == NULL) goto err;
              ^
  169.   	sign=1;
  170.   

crypto/bn/bn_lib.c:501:1: <Length trace>
499.   	}
500.   
501. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
502.   	{
503.   	int i;

crypto/bn/bn_lib.c:501:1: Parameter `*b->d`
    499.   	}
    500.   
    501. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
    502.   	{
    503.   	int i;

crypto/bn/bn_lib.c:514:2: Assignment
    512.   #if 1
    513.   	A=a->d;
    514.   	B=b->d;
            ^
    515.   	for (i=b->top>>2; i>0; i--,A+=4,B+=4)
    516.   		{

crypto/bn/bn_lib.c:518:33: Array access: Offset: [3, +oo] (⇐ [0, +oo] + 3) Size: 2 by call to `BN_mod_inverse` 
    516.   		{
    517.   		BN_ULONG a0,a1,a2,a3;
    518.   		a0=B[0]; a1=B[1]; a2=B[2]; a3=B[3];
                                           ^
    519.   		A[0]=a0; A[1]=a1; A[2]=a2; A[3]=a3;
    520.   		}
