test/bntest.c:847: error: BUFFER_OVERRUN_L3
  Offset: [-1, +oo] Size: [1, +oo] by call to `BN_GF2m_mod_mul`.
Showing all 25 steps of the trace


test/bntest.c:845:13: Call
843.           BN_bntest_rand(d, 512, 0, 0);
844.           for (j = 0; j < 2; j++) {
845.               BN_GF2m_mod_exp(e, a, c, b[j], ctx);
                   ^
846.               BN_GF2m_mod_exp(f, a, d, b[j], ctx);
847.               BN_GF2m_mod_mul(e, e, f, b[j], ctx);

crypto/bn/bn_gf2m.c:897:1: Parameter `ctx->stack.depth`
  895.    * for best performance, use the BN_GF2m_mod_exp_arr function.
  896.    */
  897. > int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
  898.                       const BIGNUM *p, BN_CTX *ctx)
  899.   {

test/bntest.c:846:13: Call
844.           for (j = 0; j < 2; j++) {
845.               BN_GF2m_mod_exp(e, a, c, b[j], ctx);
846.               BN_GF2m_mod_exp(f, a, d, b[j], ctx);
                   ^
847.               BN_GF2m_mod_mul(e, e, f, b[j], ctx);
848.               BN_add(f, c, d);

crypto/bn/bn_gf2m.c:897:1: Parameter `ctx->stack.depth`
  895.    * for best performance, use the BN_GF2m_mod_exp_arr function.
  896.    */
  897. > int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
  898.                       const BIGNUM *p, BN_CTX *ctx)
  899.   {

test/bntest.c:847:13: Call
845.               BN_GF2m_mod_exp(e, a, c, b[j], ctx);
846.               BN_GF2m_mod_exp(f, a, d, b[j], ctx);
847.               BN_GF2m_mod_mul(e, e, f, b[j], ctx);
                   ^
848.               BN_add(f, c, d);
849.               BN_GF2m_mod_exp(f, a, f, b[j], ctx);

crypto/bn/bn_gf2m.c:465:1: Parameter `ctx->stack.depth`
  463.    * BN_GF2m_mod_mul_arr function.
  464.    */
  465. > int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
  466.                       const BIGNUM *p, BN_CTX *ctx)
  467.   {

test/bntest.c:849:13: Call
847.               BN_GF2m_mod_mul(e, e, f, b[j], ctx);
848.               BN_add(f, c, d);
849.               BN_GF2m_mod_exp(f, a, f, b[j], ctx);
                   ^
850.               BN_GF2m_add(f, e, f);
851.               /* Test that a^(c+d)=a^c*a^d. */

crypto/bn/bn_gf2m.c:897:1: Parameter `ctx->stack.depth`
  895.    * for best performance, use the BN_GF2m_mod_exp_arr function.
  896.    */
  897. > int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
  898.                       const BIGNUM *p, BN_CTX *ctx)
  899.   {

test/bntest.c:845:13: Call
843.           BN_bntest_rand(d, 512, 0, 0);
844.           for (j = 0; j < 2; j++) {
845.               BN_GF2m_mod_exp(e, a, c, b[j], ctx);
                   ^
846.               BN_GF2m_mod_exp(f, a, d, b[j], ctx);
847.               BN_GF2m_mod_mul(e, e, f, b[j], ctx);

crypto/bn/bn_gf2m.c:897:1: Parameter `ctx->stack.depth`
  895.    * for best performance, use the BN_GF2m_mod_exp_arr function.
  896.    */
  897. > int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
  898.                       const BIGNUM *p, BN_CTX *ctx)
  899.   {

test/bntest.c:846:13: Call
844.           for (j = 0; j < 2; j++) {
845.               BN_GF2m_mod_exp(e, a, c, b[j], ctx);
846.               BN_GF2m_mod_exp(f, a, d, b[j], ctx);
                   ^
847.               BN_GF2m_mod_mul(e, e, f, b[j], ctx);
848.               BN_add(f, c, d);

crypto/bn/bn_gf2m.c:897:1: Parameter `ctx->stack.depth`
  895.    * for best performance, use the BN_GF2m_mod_exp_arr function.
  896.    */
  897. > int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
  898.                       const BIGNUM *p, BN_CTX *ctx)
  899.   {

test/bntest.c:847:13: Call
845.               BN_GF2m_mod_exp(e, a, c, b[j], ctx);
846.               BN_GF2m_mod_exp(f, a, d, b[j], ctx);
847.               BN_GF2m_mod_mul(e, e, f, b[j], ctx);
                   ^
848.               BN_add(f, c, d);
849.               BN_GF2m_mod_exp(f, a, f, b[j], ctx);

crypto/bn/bn_gf2m.c:465:1: Parameter `ctx->stack.depth`
  463.    * BN_GF2m_mod_mul_arr function.
  464.    */
  465. > int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
  466.                       const BIGNUM *p, BN_CTX *ctx)
  467.   {

crypto/bn/bn_gf2m.c:481:11: Call
  479.           goto err;
  480.       }
  481.       ret = BN_GF2m_mod_mul_arr(r, a, b, arr, ctx);
                   ^
  482.       bn_check_top(r);
  483.    err:

crypto/bn/bn_gf2m.c:424:5: Call
    422.       }
    423.   
    424.       BN_CTX_start(ctx);
               ^
    425.       if ((s = BN_CTX_get(ctx)) == NULL)
    426.           goto err;

crypto/bn/bn_ctx.c:171:1: Parameter `*ctx->stack.indexes`
      169.   }
      170.   
      171. > void BN_CTX_start(BN_CTX *ctx)
      172.   {
      173.       CTXDBG("ENTER BN_CTX_start()", ctx);

crypto/bn/bn_gf2m.c:454:5: Call
    452.   
    453.    err:
    454.       BN_CTX_end(ctx);
               ^
    455.       return ret;
    456.   }

crypto/bn/bn_ctx.c:185:1: Parameter `*ctx->stack.indexes`
      183.   }
      184.   
      185. > void BN_CTX_end(BN_CTX *ctx)
      186.   {
      187.       CTXDBG("ENTER BN_CTX_end()", ctx);

crypto/bn/bn_ctx.c:191:27: Call
      189.           ctx->err_stack--;
      190.       else {
      191.           unsigned int fp = BN_STACK_pop(&ctx->stack);
                                       ^
      192.           /* Does this stack frame have anything to release? */
      193.           if (fp < ctx->used)

crypto/bn/bn_ctx.c:266:1: <Offset trace>
264.   }
265.   
266. > static unsigned int BN_STACK_pop(BN_STACK *st)
267.   {
268.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:266:1: Parameter `st->depth`
        264.   }
        265.   
        266. > static unsigned int BN_STACK_pop(BN_STACK *st)
        267.   {
        268.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:266:1: <Length trace>
264.   }
265.   
266. > static unsigned int BN_STACK_pop(BN_STACK *st)
267.   {
268.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:266:1: Parameter `*st->indexes`
        264.   }
        265.   
        266. > static unsigned int BN_STACK_pop(BN_STACK *st)
        267.   {
        268.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:268:12: Array access: Offset: [-1, +oo] Size: [1, +oo] by call to `BN_GF2m_mod_mul` 
        266.   static unsigned int BN_STACK_pop(BN_STACK *st)
        267.   {
        268.       return st->indexes[--(st->depth)];
                          ^
        269.   }
        270.   
