crypto/bn/bn_prime.c:278: error: BUFFER_OVERRUN_L3
  Offset: [1, +oo] Size: [0, 8388607] by call to `BN_is_prime_fasttest_ex`.
Showing all 13 steps of the trace


crypto/bn/bn_prime.c:235:9: Call
233.           goto err;
234.       BN_CTX_start(ctx);
235.       t = BN_CTX_get(ctx);
               ^
236.       if (!t)
237.           goto err;

crypto/bn/bn_ctx.c:284:5: Call
  282.       }
  283.       /* OK, make sure the returned bignum is "zero" */
  284.       BN_zero(ret);
             ^
  285.       ctx->used++;
  286.       CTXDBG_RET(ctx, ret);

crypto/bn/bn_lib.c:530:1: Parameter `*a->d`
    528.   }
    529.   
    530. > int BN_set_word(BIGNUM *a, BN_ULONG w)
    531.   {
    532.       bn_check_top(a);

crypto/bn/bn_prime.c:278:17: Call
276.                   goto loop;
277.   
278.               j = BN_is_prime_fasttest_ex(t, 1, ctx, 0, cb);
                       ^
279.               if (j == -1)
280.                   goto err;

crypto/bn/bn_prime.c:306:1: Parameter `*a->d`
  304.   }
  305.   
  306. > int BN_is_prime_fasttest_ex(const BIGNUM *a, int checks, BN_CTX *ctx_passed,
  307.                               int do_trial_division, BN_GENCB *cb)
  308.   {

crypto/bn/bn_prime.c:387:13: Call
  385.           /* now 1 <= check < A */
  386.   
  387.           j = witness(check, A, A1, A1_odd, k, ctx, mont);
                     ^
  388.           if (j == -1)
  389.               goto err;

crypto/bn/bn_prime.c:478:1: Parameter `*a->d`
    476.   }
    477.   
    478. > static int witness(BIGNUM *w, const BIGNUM *a, const BIGNUM *a1,
    479.                      const BIGNUM *a1_odd, int k, BN_CTX *ctx,
    480.                      BN_MONT_CTX *mont)

crypto/bn/bn_prime.c:482:10: Call
    480.                      BN_MONT_CTX *mont)
    481.   {
    482.       if (!BN_mod_exp_mont(w, w, a1_odd, a, ctx, mont)) /* w := w^a1_odd mod a */
                    ^
    483.           return -1;
    484.       if (BN_is_one(w))

crypto/bn/bn_exp.c:496:14: <Offset trace>
494.           /* 2^(top*BN_BITS2) - m */
495.           r->d[0] = (0 - m->d[0]) & BN_MASK2;
496.           for (i = 1; i < j; i++)
                    ^
497.               r->d[i] = (~m->d[i]) & BN_MASK2;
498.           r->top = j;

crypto/bn/bn_exp.c:496:14: Assignment
      494.           /* 2^(top*BN_BITS2) - m */
      495.           r->d[0] = (0 - m->d[0]) & BN_MASK2;
      496.           for (i = 1; i < j; i++)
                          ^
      497.               r->d[i] = (~m->d[i]) & BN_MASK2;
      498.           r->top = j;

crypto/bn/bn_exp.c:401:1: <Length trace>
399.   }
400.   
401. > int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
402.                       const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)
403.   {

crypto/bn/bn_exp.c:401:1: Parameter `*m->d`
      399.   }
      400.   
      401. > int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
      402.                       const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)
      403.   {

crypto/bn/bn_exp.c:497:25: Array access: Offset: [1, +oo] Size: [0, 8388607] by call to `BN_is_prime_fasttest_ex` 
      495.           r->d[0] = (0 - m->d[0]) & BN_MASK2;
      496.           for (i = 1; i < j; i++)
      497.               r->d[i] = (~m->d[i]) & BN_MASK2;
                                     ^
      498.           r->top = j;
      499.           /*
