crypto/ec/ecdh_ossl.c:136: error: BUFFER_OVERRUN_L3
  Offset: [-1, +oo] Size: [1, +oo] by call to `BN_mul`.
Showing all 13 steps of the trace


crypto/ec/ecdh_ossl.c:122:5: Call
120.       if ((ctx = BN_CTX_new()) == NULL)
121.           goto err;
122.       BN_CTX_start(ctx);
           ^
123.       x = BN_CTX_get(ctx);
124.       y = BN_CTX_get(ctx);

crypto/bn/bn_ctx.c:227:1: Parameter `ctx->stack.depth`
  225.   }
  226.   
  227. > void BN_CTX_start(BN_CTX *ctx)
  228.   {
  229.       CTXDBG_ENTRY("BN_CTX_start", ctx);

crypto/ec/ecdh_ossl.c:136:14: Call
134.       if (EC_KEY_get_flags(ecdh) & EC_FLAG_COFACTOR_ECDH) {
135.           if (!EC_GROUP_get_cofactor(group, x, NULL) ||
136.               !BN_mul(x, x, priv_key, ctx)) {
                    ^
137.               ECerr(EC_F_ECDH_SIMPLE_COMPUTE_KEY, ERR_R_MALLOC_FAILURE);
138.               goto err;

crypto/bn/bn_mul.c:908:5: Call
  906.       top = al + bl;
  907.   
  908.       BN_CTX_start(ctx);
             ^
  909.       if ((r == a) || (r == b)) {
  910.           if ((rr = BN_CTX_get(ctx)) == NULL)

crypto/bn/bn_ctx.c:227:1: Parameter `*ctx->stack.indexes`
    225.   }
    226.   
    227. > void BN_CTX_start(BN_CTX *ctx)
    228.   {
    229.       CTXDBG_ENTRY("BN_CTX_start", ctx);

crypto/bn/bn_mul.c:1032:5: Call
  1030.    err:
  1031.       bn_check_top(r);
  1032.       BN_CTX_end(ctx);
              ^
  1033.       return (ret);
  1034.   }

crypto/bn/bn_ctx.c:241:1: Parameter `*ctx->stack.indexes`
    239.   }
    240.   
    241. > void BN_CTX_end(BN_CTX *ctx)
    242.   {
    243.       CTXDBG_ENTRY("BN_CTX_end", ctx);

crypto/bn/bn_ctx.c:247:27: Call
    245.           ctx->err_stack--;
    246.       else {
    247.           unsigned int fp = BN_STACK_pop(&ctx->stack);
                                     ^
    248.           /* Does this stack frame have anything to release? */
    249.           if (fp < ctx->used)

crypto/bn/bn_ctx.c:317:1: <Offset trace>
315.   }
316.   
317. > static unsigned int BN_STACK_pop(BN_STACK *st)
318.   {
319.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:317:1: Parameter `st->depth`
      315.   }
      316.   
      317. > static unsigned int BN_STACK_pop(BN_STACK *st)
      318.   {
      319.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:317:1: <Length trace>
315.   }
316.   
317. > static unsigned int BN_STACK_pop(BN_STACK *st)
318.   {
319.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:317:1: Parameter `*st->indexes`
      315.   }
      316.   
      317. > static unsigned int BN_STACK_pop(BN_STACK *st)
      318.   {
      319.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:319:12: Array access: Offset: [-1, +oo] Size: [1, +oo] by call to `BN_mul` 
      317.   static unsigned int BN_STACK_pop(BN_STACK *st)
      318.   {
      319.       return st->indexes[--(st->depth)];
                        ^
      320.   }
      321.   
