test/ectest.c:88: error: BUFFER_OVERRUN_L3
  Offset: [-1, +oo] Size: [1, +oo] by call to `BN_mul`.
Showing all 15 steps of the trace


test/ectest.c:107:14: Call
105.           points[0]  = points[1]  = P;
106.   
107.           if (!TEST_true(EC_POINTs_mul(group, R, NULL, 2, points, scalars, ctx))
                    ^
108.               || !TEST_true(EC_POINT_dbl(group, S, points[0], ctx))
109.               || !TEST_int_eq(0, EC_POINT_cmp(group, R, S, ctx)))

crypto/ec/ec_lib.c:918:1: Parameter `ctx->stack.depth`
  916.    */
  917.   
  918. > int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,
  919.                     size_t num, const EC_POINT *points[],
  920.                     const BIGNUM *scalars[], BN_CTX *ctx)

test/ectest.c:88:17: Call
86.   
87.               /* n2 = (1 - order) * (1 + order) = 1 - order^2 */
88.               || !TEST_true(BN_mul(n2, n1, n2, ctx))
                      ^
89.               || !TEST_true(EC_POINT_mul(group, Q, NULL, P, n2, ctx))
90.               || !TEST_int_eq(0, EC_POINT_cmp(group, Q, P, ctx)))

crypto/bn/bn_mul.c:497:1: Parameter `ctx->stack.depth`
  495.   #endif                          /* BN_RECURSION */
  496.   
  497. > int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
  498.   {
  499.       int ret = bn_mul_fixed_top(r, a, b, ctx);

crypto/bn/bn_mul.c:499:15: Call
  497.   int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
  498.   {
  499.       int ret = bn_mul_fixed_top(r, a, b, ctx);
                       ^
  500.   
  501.       bn_correct_top(r);

crypto/bn/bn_mul.c:533:5: Call
    531.       top = al + bl;
    532.   
    533.       BN_CTX_start(ctx);
               ^
    534.       if ((r == a) || (r == b)) {
    535.           if ((rr = BN_CTX_get(ctx)) == NULL)

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_mul.c:618:5: Call
    616.    err:
    617.       bn_check_top(r);
    618.       BN_CTX_end(ctx);
               ^
    619.       return ret;
    620.   }

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_mul` 
        266.   static unsigned int BN_STACK_pop(BN_STACK *st)
        267.   {
        268.       return st->indexes[--(st->depth)];
                          ^
        269.   }
        270.   
