crypto/rsa/rsa_ossl.c:888: error: BUFFER_OVERRUN_L3
  Offset added: [8, +oo] Size: [0, 536870848] by call to `BN_mod_exp_mont`.
Showing all 17 steps of the trace


crypto/rsa/rsa_ossl.c:688:17: Call
686.                                         ctx)
687.               || !bn_mul_fixed_top(r0, r1, rsa->q, ctx)
688.               || !bn_mod_add_fixed_top(r0, r0, m1, rsa->n))
                       ^
689.               goto err;
690.   

crypto/bn/bn_mod.c:66:10: Assignment
  64.       bp = b->d != NULL ? b->d : tp;
  65.   
  66.       for (i = 0, ai = 0, bi = 0, carry = 0; i < mtop;) {
                 ^
  67.           mask = (BN_ULONG)0 - ((i - a->top) >> (8 * sizeof(i) - 1));
  68.           temp = ((ap[ai] & mask) + carry) & BN_MASK2;

crypto/bn/bn_mod.c:85:5: Assignment
  83.           ((volatile BN_ULONG *)tp)[i] = 0;
  84.       }
  85.       r->top = mtop;
            ^
  86.       r->flags |= BN_FLG_FIXED_TOP;
  87.       r->neg = 0;

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 `*a->d`
  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 `*a->d`
    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:751:14: Call
    749.       /* prepare a^1 in Montgomery domain */
    750.       if (a->neg || BN_ucmp(a, m) >= 0) {
    751.           if (!BN_nnmod(&am, a, m, ctx))
                        ^
    752.               goto err;
    753.           if (!bn_to_mont_fixed_top(&am, &am, mont, ctx))

crypto/bn/bn_mod.c:13:1: Parameter `*m->d`
      11.   #include "bn_lcl.h"
      12.   
      13. > int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx)
      14.   {
      15.       /*

crypto/bn/bn_mod.c:20:11: Call
      18.        */
      19.   
      20.       if (!(BN_mod(r, m, d, ctx)))
                      ^
      21.           return 0;
      22.       if (!r->neg)

crypto/bn/bn_div.c:137:1: Parameter `*num->d`
        135.    * If 'dv' or 'rm' is NULL, the respective value is not returned.
        136.    */
        137. > int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
        138.              BN_CTX *ctx)
        139.   {

crypto/bn/bn_div.c:182:17: Call
        180.       if (!no_branch && BN_ucmp(num, divisor) < 0) {
        181.           if (rm != NULL) {
        182.               if (BN_copy(rm, num) == NULL)
                               ^
        183.                   return 0;
        184.           }

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 `*b->d`
          279.   }
          280.   
          281. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
          282.   {
          283.       bn_check_top(b);

crypto/bn/bn_lib.c:291:9: Array access: Offset added: [8, +oo] Size: [0, 536870848] 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;
