crypto/bn/bn_gf2m.c:1147: error: BUFFER_OVERRUN_L3
  Offset: [1, +oo] Size: [0, 8388607] by call to `BN_GF2m_mod_sqr_arr`.
Showing all 11 steps of the trace


crypto/bn/bn_gf2m.c:1133:10: Call
1131.           goto err;
1132.   
1133.       if (!BN_GF2m_mod_arr(a, a_, p))
                 ^
1134.           goto err;
1135.   

crypto/bn/bn_gf2m.c:371:1: Parameter `r->top`
  369.   
  370.   /* Performs modular reduction of a and store result in r.  r could be a. */
  371. > int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[])
  372.   {
  373.       int j, k;

crypto/bn/bn_gf2m.c:1147:18: Call
1145.               goto err;
1146.           for (j = 1; j <= (p[0] - 1) / 2; j++) {
1147.               if (!BN_GF2m_mod_sqr_arr(z, z, p, ctx))
                         ^
1148.                   goto err;
1149.               if (!BN_GF2m_mod_sqr_arr(z, z, p, ctx))

crypto/bn/bn_gf2m.c:568:1: <Offset trace>
566.   
567.   /* Square a, reduce the result mod p, and store it in a.  r could be a. */
568. > int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[],
569.                           BN_CTX *ctx)
570.   {

crypto/bn/bn_gf2m.c:568:1: Parameter `a->top`
  566.   
  567.   /* Square a, reduce the result mod p, and store it in a.  r could be a. */
  568. > int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[],
  569.                           BN_CTX *ctx)
  570.   {

crypto/bn/bn_gf2m.c:581:10: Assignment
  579.           goto err;
  580.   
  581.       for (i = a->top - 1; i >= 0; i--) {
                  ^
  582.           s->d[2 * i + 1] = SQR1(a->d[i]);
  583.           s->d[2 * i] = SQR0(a->d[i]);

crypto/bn/bn_gf2m.c:576:14: <Length trace>
574.       bn_check_top(a);
575.       BN_CTX_start(ctx);
576.       if ((s = BN_CTX_get(ctx)) == NULL)
                    ^
577.           goto err;
578.       if (!bn_wexpand(s, 2 * a->top))

crypto/bn/bn_gf2m.c:576:14: Call
  574.       bn_check_top(a);
  575.       BN_CTX_start(ctx);
  576.       if ((s = BN_CTX_get(ctx)) == NULL)
                      ^
  577.           goto err;
  578.       if (!bn_wexpand(s, 2 * a->top))

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_gf2m.c:582:9: Array access: Offset: [1, +oo] Size: [0, 8388607] by call to `BN_GF2m_mod_sqr_arr` 
  580.   
  581.       for (i = a->top - 1; i >= 0; i--) {
  582.           s->d[2 * i + 1] = SQR1(a->d[i]);
                 ^
  583.           s->d[2 * i] = SQR0(a->d[i]);
  584.       }
