crypto/bn/bn_mod.c:193: error: BUFFER_OVERRUN_L3
  Offset: 0 Size: [0, 8388607] by call to `BN_sqr`.
Showing all 12 steps of the trace


crypto/bn/bn_mod.c:190:14: Call
188.   
189.       BN_CTX_start(ctx);
190.       if ((t = BN_CTX_get(ctx)) == NULL)
                    ^
191.           goto err;
192.       if (a == b) {

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_mod.c:193:14: Call
191.           goto err;
192.       if (a == b) {
193.           if (!BN_sqr(t, a, ctx))
                    ^
194.               goto err;
195.       } else {

crypto/bn/bn_sqr.c:82:25: Call
  80.   
  81.       BN_CTX_start(ctx);
  82.       rr = (a != r) ? r : BN_CTX_get(ctx);
                                ^
  83.       tmp = BN_CTX_get(ctx);
  84.       if (!rr || !tmp)

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_sqr.c:123:17: Call
  121.                   if (bn_wexpand(tmp, max) == NULL)
  122.                       goto err;
  123.                   bn_sqr_normal(rr->d, a->d, al, tmp->d);
                         ^
  124.               }
  125.           }

crypto/bn/bn_sqr.c:153:1: <Length trace>
151.   
152.   /* tmp must have 2*n words */
153. > void bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG *tmp)
154.   {
155.       int i, j, max;

crypto/bn/bn_sqr.c:153:1: Parameter `*r`
    151.   
    152.   /* tmp must have 2*n words */
    153. > void bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG *tmp)
    154.   {
    155.       int i, j, max;

crypto/bn/bn_sqr.c:161:5: Assignment
    159.       max = n * 2;
    160.       ap = a;
    161.       rp = r;
               ^
    162.       rp[0] = rp[max - 1] = 0;
    163.       rp++;

crypto/bn/bn_sqr.c:162:5: Array access: Offset: 0 Size: [0, 8388607] by call to `BN_sqr` 
    160.       ap = a;
    161.       rp = r;
    162.       rp[0] = rp[max - 1] = 0;
               ^
    163.       rp++;
    164.       j = n;
