crypto/bn/bn_recp.c:123: error: INTEGER_OVERFLOW_L2
  ([0, 5+max(0, `ctx->stack.depth`)] - 1):unsigned32 by call to `BN_div_recp`.
Showing all 23 steps of the trace


crypto/bn/bn_recp.c:103:1: Parameter `ctx->stack.depth`
101.   	}
102.   
103. > int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y,
104.   	BN_RECP_CTX *recp, BN_CTX *ctx)
105.   	{

crypto/bn/bn_recp.c:110:2: Call
108.   	const BIGNUM *ca;
109.   
110.   	BN_CTX_start(ctx);
        ^
111.   	if ((a = BN_CTX_get(ctx)) == NULL) goto err;
112.   	if (y != NULL)

crypto/bn/bn_ctx.c:255:1: Parameter `ctx->stack.depth`
  253.   	}
  254.   
  255. > void BN_CTX_start(BN_CTX *ctx)
  256.   	{
  257.   	CTXDBG_ENTRY("BN_CTX_start", ctx);

crypto/bn/bn_recp.c:123:8: Call
121.   		ca=x; /* Just do the mod */
122.   
123.   	ret = BN_div_recp(NULL,r,ca,recp,ctx);
              ^
124.   err:
125.   	BN_CTX_end(ctx);

crypto/bn/bn_recp.c:130:1: Parameter `ctx->stack.depth`
  128.   	}
  129.   
  130. > int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m,
  131.   	BN_RECP_CTX *recp, BN_CTX *ctx)
  132.   	{

crypto/bn/bn_recp.c:136:2: Call
  134.   	BIGNUM *a,*b,*d,*r;
  135.   
  136.   	BN_CTX_start(ctx);
          ^
  137.   	a=BN_CTX_get(ctx);
  138.   	b=BN_CTX_get(ctx);

crypto/bn/bn_ctx.c:255:1: Parameter `ctx->stack.depth`
    253.   	}
    254.   
    255. > void BN_CTX_start(BN_CTX *ctx)
    256.   	{
    257.   	CTXDBG_ENTRY("BN_CTX_start", ctx);

crypto/bn/bn_recp.c:170:15: Call
  168.   	/* Nr := round(2^i / N) */
  169.   	if (i != recp->shift)
  170.   		recp->shift=BN_reciprocal(&(recp->Nr),&(recp->N),
                       ^
  171.   			i,ctx); /* BN_reciprocal returns i, or -1 for an error */
  172.   	if (recp->shift == -1) goto err;

crypto/bn/bn_recp.c:217:1: Parameter `ctx->stack.depth`
    215.    */
    216.   /* r := 2^len / m */
    217. > int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx)
    218.   	{
    219.   	int ret= -1;

crypto/bn/bn_recp.c:222:2: Call
    220.   	BIGNUM *t;
    221.   
    222.   	BN_CTX_start(ctx);
            ^
    223.   	if((t = BN_CTX_get(ctx)) == NULL) goto err;
    224.   

crypto/bn/bn_ctx.c:255:1: Parameter `ctx->stack.depth`
      253.   	}
      254.   
      255. > void BN_CTX_start(BN_CTX *ctx)
      256.   	{
      257.   	CTXDBG_ENTRY("BN_CTX_start", ctx);

crypto/bn/bn_recp.c:227:7: Call
    225.   	if (!BN_set_bit(t,len)) goto err;
    226.   
    227.   	if (!BN_div(r,NULL,t,m,ctx)) goto err;
                 ^
    228.   
    229.   	ret=len;

crypto/bn/bn_div.c:179:1: Parameter `ctx->stack.depth`
      177.    * If 'dv' or 'rm' is NULL, the respective value is not returned.
      178.    */
      179. > int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
      180.   	   BN_CTX *ctx)
      181.   	{

crypto/bn/bn_div.c:190:10: Call
      188.   	if ((BN_get_flags(num, BN_FLG_CONSTTIME) != 0) || (BN_get_flags(divisor, BN_FLG_CONSTTIME) != 0))
      189.   		{
      190.   		return BN_div_no_branch(dv, rm, num, divisor, ctx);
                      ^
      191.   		}
      192.   

crypto/bn/bn_div.c:409:1: Parameter `ctx->stack.depth`
        407.    * branches that may leak sensitive information.
        408.    */
        409. > int BN_div_no_branch(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, 
        410.   	const BIGNUM *divisor, BN_CTX *ctx)
        411.   	{

crypto/bn/bn_div.c:429:2: Call
        427.   		}
        428.   
        429.   	BN_CTX_start(ctx);
                ^
        430.   	tmp=BN_CTX_get(ctx);
        431.   	snum=BN_CTX_get(ctx);

crypto/bn/bn_ctx.c:255:1: Parameter `ctx->stack.depth`
          253.   	}
          254.   
          255. > void BN_CTX_start(BN_CTX *ctx)
          256.   	{
          257.   	CTXDBG_ENTRY("BN_CTX_start", ctx);

crypto/bn/bn_div.c:621:2: Call
        619.   		bn_check_top(rm);
        620.   		}
        621.   	BN_CTX_end(ctx);
                ^
        622.   	return(1);
        623.   err:

crypto/bn/bn_ctx.c:270:1: Parameter `ctx->stack.depth`
          268.   	}
          269.   
          270. > void BN_CTX_end(BN_CTX *ctx)
          271.   	{
          272.   	CTXDBG_ENTRY("BN_CTX_end", ctx);

crypto/bn/bn_ctx.c:277:21: Call
          275.   	else
          276.   		{
          277.   		unsigned int fp = BN_STACK_pop(&ctx->stack);
                                     ^
          278.   		/* Does this stack frame have anything to release? */
          279.   		if(fp < ctx->used)

crypto/bn/bn_ctx.c:351:1: <LHS trace>
349.   	}
350.   
351. > static unsigned int BN_STACK_pop(BN_STACK *st)
352.   	{
353.   	return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:351:1: Parameter `st->depth`
            349.   	}
            350.   
            351. > static unsigned int BN_STACK_pop(BN_STACK *st)
            352.   	{
            353.   	return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:353:9: Binary operation: ([0, 5+max(0, ctx->stack.depth)] - 1):unsigned32 by call to `BN_div_recp` 
            351.   static unsigned int BN_STACK_pop(BN_STACK *st)
            352.   	{
            353.   	return st->indexes[--(st->depth)];
                           ^
            354.   	}
            355.   
