crypto/ec/ec_lib.c:965: error: BUFFER_OVERRUN_L3
  Offset: [-1, +oo] Size: [1, +oo] by call to `ec_wNAF_mul`.
Showing all 20 steps of the trace


crypto/ec/ec_lib.c:933:1: Parameter `ctx->stack.depth`
931.    */
932.   
933. > int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,
934.                     size_t num, const EC_POINT *points[],
935.                     const BIGNUM *scalars[], BN_CTX *ctx)

crypto/ec/ec_lib.c:965:15: Call
963.       else
964.           /* use default */
965.           ret = ec_wNAF_mul(group, r, scalar, num, points, scalars, ctx);
                     ^
966.   
967.       BN_CTX_free(new_ctx);

crypto/ec/ec_mult.c:410:1: Parameter `ctx->stack.depth`
  408.    * in the addition if scalar != NULL
  409.    */
  410. > int ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,
  411.                   size_t num, const EC_POINT *points[], const BIGNUM *scalars[],
  412.                   BN_CTX *ctx)

crypto/ec/ec_mult.c:453:20: Call
  451.                * always call the ladder version.
  452.                */
  453.               return ec_scalar_mul_ladder(group, r, scalar, NULL, ctx);
                            ^
  454.           }
  455.           if ((scalar == NULL) && (num == 1) && (scalars[0] != group->order)) {

crypto/ec/ec_mult.c:139:1: Parameter `ctx->stack.depth`
    137.    * Returns 1 on success, 0 otherwise.
    138.    */
    139. > int ec_scalar_mul_ladder(const EC_GROUP *group, EC_POINT *r,
    140.                            const BIGNUM *scalar, const EC_POINT *point,
    141.                            BN_CTX *ctx)

crypto/ec/ec_mult.c:164:5: Call
    162.       }
    163.   
    164.       BN_CTX_start(ctx);
               ^
    165.   
    166.       if (((p = EC_POINT_new(group)) == NULL)

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

crypto/ec/ec_mult.c:196:10: Call
    194.       }
    195.   
    196.       if (!BN_mul(cardinality, group->order, group->cofactor, ctx)) {
                    ^
    197.           ECerr(EC_F_EC_SCALAR_MUL_LADDER, ERR_R_BN_LIB);
    198.           goto err;

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