crypto/bn/bn_exp.c:1343: error: BUFFER_OVERRUN_L3
  Offset: [4, +oo] (⇐ [0, +oo] + 4) Size: [0, 8388607] by call to `BN_mod_mul`.
Showing all 13 steps of the trace


crypto/bn/bn_exp.c:1328:9: Call
1326.   
1327.       BN_CTX_start(ctx);
1328.       d = BN_CTX_get(ctx);
                ^
1329.       val[0] = BN_CTX_get(ctx);
1330.       if (!d || !val[0])

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_exp.c:1343:14: Call
1341.       window = BN_window_bits_for_exponent_size(bits);
1342.       if (window > 1) {
1343.           if (!BN_mod_mul(d, val[0], val[0], m, ctx))
                     ^
1344.               goto err;           /* 2 */
1345.           j = 1 << (window - 1);

crypto/bn/bn_mod.c:179:1: Parameter `*b->d`
  177.   
  178.   /* slow but works */
  179. > int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m,
  180.                  BN_CTX *ctx)
  181.   {

crypto/bn/bn_mod.c:196:14: Call
  194.               goto err;
  195.       } else {
  196.           if (!BN_mul(t, a, b, ctx))
                      ^
  197.               goto err;
  198.       }

crypto/bn/bn_mul.c:883:1: Parameter `*b->d`
    881.   #endif                          /* BN_RECURSION */
    882.   
    883. > int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
    884.   {
    885.       int ret = 0;

crypto/bn/bn_mul.c:964:17: Call
    962.                   if (bn_wexpand(rr, k * 4) == NULL)
    963.                       goto err;
    964.                   bn_mul_part_recursive(rr->d, a->d, b->d,
                           ^
    965.                                         j, al - j, bl - j, t->d);
    966.               } else {            /* al <= j || bl <= j */

crypto/bn/bn_mul.c:534:1: Parameter `*b`
      532.    */
      533.   /* tnX may not be negative but less than n */
      534. > void bn_mul_part_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n,
      535.                              int tna, int tnb, BN_ULONG *t)
      536.   {

crypto/bn/bn_mul.c:542:9: Call
      540.   
      541.       if (n < 8) {
      542.           bn_mul_normal(r, a, n + tna, b, n + tnb);
                     ^
      543.           return;
      544.       }

crypto/bn/bn_mul.c:1037:1: <Length trace>
1035.   }
1036.   
1037. > void bn_mul_normal(BN_ULONG *r, BN_ULONG *a, int na, BN_ULONG *b, int nb)
1038.   {
1039.       BN_ULONG *rr;

crypto/bn/bn_mul.c:1037:1: Parameter `*b`
        1035.   }
        1036.   
        1037. > void bn_mul_normal(BN_ULONG *r, BN_ULONG *a, int na, BN_ULONG *b, int nb)
        1038.   {
        1039.       BN_ULONG *rr;

crypto/bn/bn_mul.c:1072:50: Array access: Offset: [4, +oo] (⇐ [0, +oo] + 4) Size: [0, 8388607] by call to `BN_mod_mul` 
        1070.           if (--nb <= 0)
        1071.               return;
        1072.           rr[4] = bn_mul_add_words(&(r[4]), a, na, b[4]);
                                                                 ^
        1073.           rr += 4;
        1074.           r += 4;
