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


crypto/bn/bn_gf2m.c:879:18: Call
877.   
878.       BN_CTX_start(ctx);
879.       if ((field = BN_CTX_get(ctx)) == NULL)
                        ^
880.           goto err;
881.       if (!BN_GF2m_arr2poly(p, field))

crypto/bn/bn_ctx.c:229:5: Call
  227.       }
  228.       /* OK, make sure the returned bignum is "zero" */
  229.       BN_zero(ret);
             ^
  230.       ctx->used++;
  231.       CTXDBG_RET(ctx, ret);

crypto/bn/bn_lib.c:405:15: Assignment
    403.       a->neg = 0;
    404.       a->d[0] = w;
    405.       a->top = (w ? 1 : 0);
                         ^
    406.       bn_check_top(a);
    407.       return 1;

crypto/bn/bn_lib.c:405:5: Assignment
    403.       a->neg = 0;
    404.       a->d[0] = w;
    405.       a->top = (w ? 1 : 0);
               ^
    406.       bn_check_top(a);
    407.       return 1;

crypto/bn/bn_gf2m.c:884:11: Call
882.           goto err;
883.   
884.       ret = BN_GF2m_mod_div(r, yy, xx, field, ctx);
                 ^
885.       bn_check_top(r);
886.   

crypto/bn/bn_gf2m.c:748:1: Parameter `p->top`
  746.    * or y, x could equal y.
  747.    */
  748. > int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *y, const BIGNUM *x,
  749.                       const BIGNUM *p, BN_CTX *ctx)
  750.   {

crypto/bn/bn_gf2m.c:763:10: Call
  761.           goto err;
  762.   
  763.       if (!BN_GF2m_mod_inv(xinv, x, p, ctx))
                  ^
  764.           goto err;
  765.       if (!BN_GF2m_mod_mul(r, y, xinv, p, ctx))

crypto/bn/bn_gf2m.c:627:14: <Offset trace>
625.           bdp = b->d;
626.           bdp[0] = 1;
627.           for (i = 1; i < top; i++)
                    ^
628.               bdp[i] = 0;
629.           b->top = top;

crypto/bn/bn_gf2m.c:627:14: Assignment
    625.           bdp = b->d;
    626.           bdp[0] = 1;
    627.           for (i = 1; i < top; i++)
                        ^
    628.               bdp[i] = 0;
    629.           b->top = top;

crypto/bn/bn_gf2m.c:560:9: <Length trace>
558.       BN_CTX_start(ctx);
559.   
560.       b = BN_CTX_get(ctx);
               ^
561.       c = BN_CTX_get(ctx);
562.       u = BN_CTX_get(ctx);

crypto/bn/bn_gf2m.c:560:9: Call
    558.       BN_CTX_start(ctx);
    559.   
    560.       b = BN_CTX_get(ctx);
                   ^
    561.       c = BN_CTX_get(ctx);
    562.       u = BN_CTX_get(ctx);

crypto/bn/bn_ctx.c:229:5: Call
      227.       }
      228.       /* OK, make sure the returned bignum is "zero" */
      229.       BN_zero(ret);
                 ^
      230.       ctx->used++;
      231.       CTXDBG_RET(ctx, ret);

crypto/bn/bn_lib.c:398:1: Parameter `*a->d`
        396.   }
        397.   
        398. > int BN_set_word(BIGNUM *a, BN_ULONG w)
        399.   {
        400.       bn_check_top(a);

crypto/bn/bn_lib.c:401:9: Call
        399.   {
        400.       bn_check_top(a);
        401.       if (bn_expand(a, (int)sizeof(BN_ULONG) * 8) == NULL)
                       ^
        402.           return (0);
        403.       a->neg = 0;

crypto/bn/bn_lcl.h:658:1: Parameter `*a->d`
          656.                            const BIGNUM *add, const BIGNUM *rem, BN_CTX *ctx);
          657.   
          658. > static ossl_inline BIGNUM *bn_expand(BIGNUM *a, int bits)
          659.   {
          660.       if (bits > (INT_MAX - BN_BITS2 + 1))

crypto/bn/bn_gf2m.c:625:9: Assignment
    623.           if (!bn_wexpand(b, top))
    624.             goto err;
    625.           bdp = b->d;
                   ^
    626.           bdp[0] = 1;
    627.           for (i = 1; i < top; i++)

crypto/bn/bn_gf2m.c:628:13: Array access: Offset: [1, +oo] Size: [0, 8388607] by call to `BN_GF2m_mod_div` 
    626.           bdp[0] = 1;
    627.           for (i = 1; i < top; i++)
    628.               bdp[i] = 0;
                       ^
    629.           b->top = top;
    630.           if (!bn_wexpand(c, top))
