crypto/dsa/dsa_ossl.c:254: error: BUFFER_OVERRUN_L3
  Offset added: [8, +oo] Size: [0, 67108856] by call to `BN_mod_exp_mont`.
Showing all 19 steps of the trace


crypto/dsa/dsa_ossl.c:175:1: Parameter `dsa->p->top`
173.   }
174.   
175. > static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in,
176.                             BIGNUM **kinvp, BIGNUM **rp,
177.                             const unsigned char *dgst, int dlen)

crypto/dsa/dsa_ossl.c:254:18: Call
252.                   goto err;
253.       } else {
254.               if (!BN_mod_exp_mont(r, dsa->g, k, dsa->p, ctx, dsa->method_mont_p))
                        ^
255.                   goto err;
256.       }

crypto/bn/bn_exp.c:296:1: Parameter `m->top`
  294.   }
  295.   
  296. > int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
  297.                       const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)
  298.   {

crypto/bn/bn_exp.c:310:16: Call
  308.               || BN_get_flags(a, BN_FLG_CONSTTIME) != 0
  309.               || BN_get_flags(m, BN_FLG_CONSTTIME) != 0) {
  310.           return BN_mod_exp_mont_consttime(rr, a, p, m, ctx, in_mont);
                        ^
  311.       }
  312.   

crypto/bn/bn_exp.c:596:1: Parameter `m->top`
    594.    * http://www.daemonology.net/hyperthreading-considered-harmful/)
    595.    */
    596. > int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
    597.                                 const BIGNUM *m, BN_CTX *ctx,
    598.                                 BN_MONT_CTX *in_mont)

crypto/bn/bn_exp.c:617:10: Call
    615.       bn_check_top(m);
    616.   
    617.       if (!BN_is_odd(m)) {
                    ^
    618.           BNerr(BN_F_BN_MOD_EXP_MONT_CONSTTIME, BN_R_CALLED_WITH_EVEN_MODULUS);
    619.           return 0;

crypto/bn/bn_lib.c:861:1: Parameter `a->top`
      859.   }
      860.   
      861. > int BN_is_odd(const BIGNUM *a)
      862.   {
      863.       return (a->top > 0) && (a->d[0] & 1);

crypto/bn/bn_exp.c:651:14: Call
    649.           if ((mont = BN_MONT_CTX_new()) == NULL)
    650.               goto err;
    651.           if (!BN_MONT_CTX_set(mont, m, ctx))
                        ^
    652.               goto err;
    653.       }

crypto/bn/bn_mont.c:233:1: Parameter `mod->top`
      231.   }
      232.   
      233. > int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx)
      234.   {
      235.       int ret = 0;

crypto/bn/bn_mont.c:238:9: Call
      236.       BIGNUM *Ri, *R;
      237.   
      238.       if (BN_is_zero(mod))
                     ^
      239.           return 0;
      240.   

crypto/bn/bn_lib.c:846:1: Parameter `a->top`
        844.   }
        845.   
        846. > int BN_is_zero(const BIGNUM *a)
        847.   {
        848.       return a->top == 0;

crypto/bn/bn_mont.c:245:10: Call
      243.           goto err;
      244.       R = &(mont->RR);            /* grab RR as a temp */
      245.       if (!BN_copy(&(mont->N), mod))
                      ^
      246.           goto err;               /* Set N */
      247.       if (BN_get_flags(mod, BN_FLG_CONSTTIME) != 0)

crypto/bn/bn_lib.c:280:1: <Offset trace>
278.   }
279.   
280. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
281.   {
282.       bn_check_top(b);

crypto/bn/bn_lib.c:280:1: Parameter `b->top`
        278.   }
        279.   
        280. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
        281.   {
        282.       bn_check_top(b);

crypto/bn/bn_lib.c:280:1: <Length trace>
278.   }
279.   
280. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
281.   {
282.       bn_check_top(b);

crypto/bn/bn_lib.c:280:1: Parameter `*a->d`
        278.   }
        279.   
        280. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
        281.   {
        282.       bn_check_top(b);

crypto/bn/bn_lib.c:286:9: Call
        284.       if (a == b)
        285.           return a;
        286.       if (bn_wexpand(a, b->top) == NULL)
                       ^
        287.           return NULL;
        288.   

crypto/bn/bn_lib.c:942:1: Parameter `*a->d`
          940.   }
          941.   
          942. > BIGNUM *bn_wexpand(BIGNUM *a, int words)
          943.   {
          944.       return (words <= a->dmax) ? a : bn_expand2(a, words);

crypto/bn/bn_lib.c:290:9: Array access: Offset added: [8, +oo] Size: [0, 67108856] by call to `BN_mod_exp_mont` 
        288.   
        289.       if (b->top > 0)
        290.           memcpy(a->d, b->d, sizeof(b->d[0]) * b->top);
                       ^
        291.   
        292.       a->neg = b->neg;
