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


crypto/bn/bn_gf2m.c:999:10: Call
997.           goto err;
998.   
999.       if (!BN_GF2m_mod_arr(u, a, p))
                 ^
1000.           goto err;
1001.   

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:1007:18: Call
1005.               goto err;
1006.           if (BN_is_bit_set(b, i)) {
1007.               if (!BN_GF2m_mod_mul_arr(u, u, a, p, ctx))
                         ^
1008.                   goto err;
1009.           }

crypto/bn/bn_gf2m.c:489:1: Parameter `a->top`
  487.    * the result in r.  r could be a or b; a could be b.
  488.    */
  489. > int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
  490.                           const int p[], BN_CTX *ctx)
  491.   {

crypto/bn/bn_gf2m.c:500:16: Call
  498.   
  499.       if (a == b) {
  500.           return BN_GF2m_mod_sqr_arr(r, a, p, ctx);
                        ^
  501.       }
  502.   

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_mul_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.       }
