crypto/evp/evp_pkey.c:172: error: BUFFER_OVERRUN_L3
  Offset: [7, +oo] (⇐ [0, +oo] + 7) Size: [2, +oo] by call to `BN_mod_exp`.
Showing all 13 steps of the trace


crypto/evp/evp_pkey.c:161:24: Call
159.   		}
160.   		/* Calculate public key (ouch!) */
161.   		if (!(dsa->pub_key = BN_new())) {
                              ^
162.   			EVPerr(EVP_F_EVP_PKCS82PKEY,ERR_R_MALLOC_FAILURE);
163.   			DSA_free (dsa);

crypto/bn/bn_lib.c:300:2: Assignment
  298.   		}
  299.   	ret->flags=BN_FLG_MALLOCED;
  300.   	ret->top=0;
          ^
  301.   	ret->neg=0;
  302.   	ret->max=0;

crypto/evp/evp_pkey.c:172:8: Call
170.   		}
171.   			
172.   		if (!BN_mod_exp(dsa->pub_key, dsa->g,
              ^
173.   						 dsa->priv_key, dsa->p, ctx)) {
174.   			

crypto/bn/bn_exp.c:157:1: Parameter `r->max`
  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 `rr->max`
    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:428:2: Call
    426.   		if (wstart < 0) break;
    427.   		}
    428.   	BN_from_montgomery(rr,r,mont,ctx);
            ^
    429.   	ret=1;
    430.   err:

crypto/bn/bn_mont.c:108:1: Parameter `ret->max`
      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,*a;

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

crypto/bn/bn_lib.c:466:3: Assignment
        464.   		/* Now need to zero any data between b->top and b->max */
        465.   
        466.   		A= &(b->d[b->top]);
                 ^
        467.   		for (i=(b->max - b->top)>>3; i>0; i--,A+=8)
        468.   			{

crypto/bn/bn_lib.c:470:28: Array access: Offset: [7, +oo] (⇐ [0, +oo] + 7) Size: [2, +oo] by call to `BN_mod_exp` 
        468.   			{
        469.   			A[0]=0; A[1]=0; A[2]=0; A[3]=0;
        470.   			A[4]=0; A[5]=0; A[6]=0; A[7]=0;
                                          ^
        471.   			}
        472.   		for (i=(b->max - b->top)&7; i>0; i--,A++)
