test/bntest.c:879: 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:877:19: Call
875.               goto err;
876.           for (j = 0; j < 2; j++) {
877.               if (!(TEST_true(BN_GF2m_mod_exp(e, a, c, b[j], ctx))
                         ^
878.                       && TEST_true(BN_GF2m_mod_exp(f, a, d, b[j], ctx))
879.                       && TEST_true(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:878:24: Call
876.           for (j = 0; j < 2; j++) {
877.               if (!(TEST_true(BN_GF2m_mod_exp(e, a, c, b[j], ctx))
878.                       && TEST_true(BN_GF2m_mod_exp(f, a, d, b[j], ctx))
                              ^
879.                       && TEST_true(BN_GF2m_mod_mul(e, e, f, b[j], ctx))
880.                       && TEST_true(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:879:24: Call
877.               if (!(TEST_true(BN_GF2m_mod_exp(e, a, c, b[j], ctx))
878.                       && TEST_true(BN_GF2m_mod_exp(f, a, d, b[j], ctx))
879.                       && TEST_true(BN_GF2m_mod_mul(e, e, f, b[j], ctx))
                              ^
880.                       && TEST_true(BN_add(f, c, d))
881.                       && TEST_true(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:881:24: Call
879.                       && TEST_true(BN_GF2m_mod_mul(e, e, f, b[j], ctx))
880.                       && TEST_true(BN_add(f, c, d))
881.                       && TEST_true(BN_GF2m_mod_exp(f, a, f, b[j], ctx))
                              ^
882.                       && TEST_true(BN_GF2m_add(f, e, f))
883.                       /* 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:877:19: Call
875.               goto err;
876.           for (j = 0; j < 2; j++) {
877.               if (!(TEST_true(BN_GF2m_mod_exp(e, a, c, b[j], ctx))
                         ^
878.                       && TEST_true(BN_GF2m_mod_exp(f, a, d, b[j], ctx))
879.                       && TEST_true(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:878:24: Call
876.           for (j = 0; j < 2; j++) {
877.               if (!(TEST_true(BN_GF2m_mod_exp(e, a, c, b[j], ctx))
878.                       && TEST_true(BN_GF2m_mod_exp(f, a, d, b[j], ctx))
                              ^
879.                       && TEST_true(BN_GF2m_mod_mul(e, e, f, b[j], ctx))
880.                       && TEST_true(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:879:24: Call
877.               if (!(TEST_true(BN_GF2m_mod_exp(e, a, c, b[j], ctx))
878.                       && TEST_true(BN_GF2m_mod_exp(f, a, d, b[j], ctx))
879.                       && TEST_true(BN_GF2m_mod_mul(e, e, f, b[j], ctx))
                              ^
880.                       && TEST_true(BN_add(f, c, d))
881.                       && TEST_true(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.       if (ctx == NULL)

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

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

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

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

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

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