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


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)

crypto/ec/ec_lib.c:950:15: Call
948.       else
949.           /* use default */
950.           ret = ec_wNAF_mul(group, r, scalar, num, points, scalars, ctx);
                     ^
951.   
952.       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)) {

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:188:19: Call
    186.       EC_POINT_BN_set_flags(s, BN_FLG_CONSTTIME);
    187.   
    188.       cardinality = BN_CTX_get(ctx);
                             ^
    189.       lambda = BN_CTX_get(ctx);
    190.       k = BN_CTX_get(ctx);

crypto/bn/bn_ctx.c:202:1: Parameter `ctx->stack.depth`
      200.   }
      201.   
      202. > BIGNUM *BN_CTX_get(BN_CTX *ctx)
      203.   {
      204.       BIGNUM *ret;

crypto/ec/ec_mult.c:189:14: Call
    187.   
    188.       cardinality = BN_CTX_get(ctx);
    189.       lambda = BN_CTX_get(ctx);
                        ^
    190.       k = BN_CTX_get(ctx);
    191.       if (k == NULL) {

crypto/bn/bn_ctx.c:202:1: Parameter `ctx->stack.depth`
      200.   }
      201.   
      202. > BIGNUM *BN_CTX_get(BN_CTX *ctx)
      203.   {
      204.       BIGNUM *ret;

crypto/ec/ec_mult.c:190:9: Call
    188.       cardinality = BN_CTX_get(ctx);
    189.       lambda = BN_CTX_get(ctx);
    190.       k = BN_CTX_get(ctx);
                   ^
    191.       if (k == NULL) {
    192.           ECerr(EC_F_EC_SCALAR_MUL_LADDER, ERR_R_MALLOC_FAILURE);

crypto/bn/bn_ctx.c:202:1: Parameter `ctx->stack.depth`
      200.   }
      201.   
      202. > BIGNUM *BN_CTX_get(BN_CTX *ctx)
      203.   {
      204.       BIGNUM *ret;

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