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


crypto/bn/bn_prime.c:105:9: Call
103.   		if (strong)
104.   			{
105.   			if (!probable_prime_dh_strong(rnd,bits,add,rem,ctx))
               ^
106.   				 goto err;
107.   			}

crypto/bn/bn_prime.c:334:1: Parameter `p->top`
  332.   	}
  333.   
  334. > static int probable_prime_dh_strong(BIGNUM *p, int bits, BIGNUM *padd,
  335.   	     BIGNUM *rem, BN_CTX *ctx)
  336.   	{

crypto/bn/bn_prime.c:129:8: Call
127.   		 * Since a prime is odd, We just
128.   		 * need to divide by 2 */
129.   		if (!BN_rshift1(&t,rnd)) goto err;
              ^
130.   
131.   		for (i=0; i<BN_prime_checks; i++)

crypto/bn/bn_shift.c:95:1: Parameter `*r->d`
  93.   	}
  94.   
  95. > int BN_rshift1(BIGNUM *r, BIGNUM *a)
  96.   	{
  97.   	BN_ULONG *ap,*rp,t,c;

crypto/bn/bn_prime.c:137:6: Call
135.   			if (j == 0) goto loop;
136.   
137.   			j=BN_is_prime(&t,1,callback,ctx,cb_arg);
            ^
138.   			if (j == -1) goto err;
139.   			if (j == 0) goto loop;

crypto/bn/bn_prime.c:154:1: Parameter `*a->d`
  152.   	}
  153.   
  154. > int BN_is_prime(BIGNUM *a, int checks, void (*callback)(int,int,char *),
  155.   	     BN_CTX *ctx_passed, char *cb_arg)
  156.   	{

crypto/bn/bn_prime.c:175:7: Call
  173.   
  174.   	/* Setup the montgomery structure */
  175.   	if (!BN_MONT_CTX_set(mont,a,ctx2)) goto err;
               ^
  176.   
  177.   	for (i=0; i<checks; i++)

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

crypto/bn/bn_mont.c:307:2: Call
    305.   	BN_init(&Ri);
    306.   	R= &(mont->RR);					/* grab RR as a temp */
    307.   	BN_copy(&(mont->N),mod);			/* Set N */
            ^
    308.   
    309.   #ifdef BN_RECURSION_MONT

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

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

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

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