crypto/rsa/rsa_ossl.c:888: 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/rsa/rsa_ossl.c:592:1: Parameter `rsa->n->top`
590.   }
591.   
592. > static int rsa_ossl_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx)
593.   {
594.       BIGNUM *r1, *m1, *vrfy, *r2, *m[RSA_MAX_PRIME_NUM - 2];

crypto/rsa/rsa_ossl.c:888:18: Call
886.       if (rsa->e && rsa->n) {
887.           if (rsa->meth->bn_mod_exp == BN_mod_exp_mont) {
888.               if (!BN_mod_exp_mont(vrfy, r0, rsa->e, rsa->n, ctx,
                        ^
889.                                    rsa->_method_mod_n))
890.                   goto err;

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:592:1: Parameter `m->top`
    590.    * http://www.daemonology.net/hyperthreading-considered-harmful/)
    591.    */
    592. > int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
    593.                                 const BIGNUM *m, BN_CTX *ctx,
    594.                                 BN_MONT_CTX *in_mont)

crypto/bn/bn_exp.c:613:10: Call
    611.       bn_check_top(m);
    612.   
    613.       if (!BN_is_odd(m)) {
                    ^
    614.           BNerr(BN_F_BN_MOD_EXP_MONT_CONSTTIME, BN_R_CALLED_WITH_EVEN_MODULUS);
    615.           return 0;

crypto/bn/bn_lib.c:867:1: Parameter `a->top`
      865.   }
      866.   
      867. > int BN_is_odd(const BIGNUM *a)
      868.   {
      869.       return (a->top > 0) && (a->d[0] & 1);

crypto/bn/bn_exp.c:647:14: Call
    645.           if ((mont = BN_MONT_CTX_new()) == NULL)
    646.               goto err;
    647.           if (!BN_MONT_CTX_set(mont, m, ctx))
                        ^
    648.               goto err;
    649.       }

crypto/bn/bn_mont.c:263:1: Parameter `mod->top`
      261.   }
      262.   
      263. > int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx)
      264.   {
      265.       int i, ret = 0;

crypto/bn/bn_mont.c:268:9: Call
      266.       BIGNUM *Ri, *R;
      267.   
      268.       if (BN_is_zero(mod))
                     ^
      269.           return 0;
      270.   

crypto/bn/bn_lib.c:852:1: Parameter `a->top`
        850.   }
        851.   
        852. > int BN_is_zero(const BIGNUM *a)
        853.   {
        854.       return a->top == 0;

crypto/bn/bn_mont.c:275:10: Call
      273.           goto err;
      274.       R = &(mont->RR);            /* grab RR as a temp */
      275.       if (!BN_copy(&(mont->N), mod))
                      ^
      276.           goto err;               /* Set N */
      277.       if (BN_get_flags(mod, BN_FLG_CONSTTIME) != 0)

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

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

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

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

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

crypto/bn/bn_lib.c:948:1: Parameter `*a->d`
          946.   }
          947.   
          948. > BIGNUM *bn_wexpand(BIGNUM *a, int words)
          949.   {
          950.       return (words <= a->dmax) ? a : bn_expand2(a, words);

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