crypto/bn/bntest.c:575: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - 1):unsigned64 by call to `BN_div_recp`.
Showing all 13 steps of the trace


crypto/bn/bntest.c:574:3: Call
572.   		a.neg=rand_neg();
573.   		b.neg=rand_neg();
574.   		BN_RECP_CTX_set(&recp,&b,ctx);
         ^
575.   		BN_div_recp(&d,&c,&a,&recp,ctx);
576.   		if (bp != NULL)

crypto/bn/bn_recp.c:94:1: Parameter `*recp->Nr.d`
  92.   	}
  93.   
  94. > int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *d, BN_CTX *ctx)
  95.   	{
  96.   	if (!BN_copy(&(recp->N),d)) return 0;

crypto/bn/bntest.c:575:3: Call
573.   		b.neg=rand_neg();
574.   		BN_RECP_CTX_set(&recp,&b,ctx);
575.   		BN_div_recp(&d,&c,&a,&recp,ctx);
         ^
576.   		if (bp != NULL)
577.   			{

crypto/bn/bn_recp.c:130:1: Parameter `*m->d`
  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:149:6: Call
  147.   	if (a == NULL || b == NULL || d == NULL || r == NULL) goto err;
  148.   
  149.   	if (BN_ucmp(m,&(recp->N)) < 0)
              ^
  150.   		{
  151.   		BN_zero(d);

crypto/bn/bn_lib.c:656:1: Parameter `*a->d`
    654.   	}
    655.   
    656. > int BN_ucmp(const BIGNUM *a, const BIGNUM *b)
    657.   	{
    658.   	int i;

crypto/bn/bn_recp.c:164:4: Call
  162.   
  163.   	/* i := max(BN_num_bits(m), 2*BN_num_bits(N)) */
  164.   	i=BN_num_bits(m);
            ^
  165.   	j=recp->num_bits<<1;
  166.   	if (j>i) i=j;

crypto/bn/bn_lib.c:248:1: Parameter `*a->d`
    246.   	}
    247.   
    248. > int BN_num_bits(const BIGNUM *a)
    249.   	{
    250.   	int i = a->top - 1;

crypto/bn/bn_recp.c:185:7: Call
  183.   
  184.   	if (!BN_mul(b,&(recp->N),d,ctx)) goto err;
  185.   	if (!BN_usub(r,m,b)) goto err;
               ^
  186.   	r->neg=0;
  187.   

crypto/bn/bn_add.c:166:1: <LHS trace>
164.   
165.   /* unsigned subtraction of b from a, a must be larger than b. */
166. > int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
167.   	{
168.   	int max,min,dif;

crypto/bn/bn_add.c:166:1: Parameter `*a->d`
    164.   
    165.   /* unsigned subtraction of b from a, a must be larger than b. */
    166. > int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
    167.   	{
    168.   	int max,min,dif;

crypto/bn/bn_add.c:229:4: Assignment
    227.   			{
    228.   			dif--;
    229.   			t1 = *(ap++);
              ^
    230.   			t2 = (t1-1)&BN_MASK2;
    231.   			*(rp++) = t2;

crypto/bn/bn_add.c:230:4: Binary operation: ([0, +oo] - 1):unsigned64 by call to `BN_div_recp` 
    228.   			dif--;
    229.   			t1 = *(ap++);
    230.   			t2 = (t1-1)&BN_MASK2;
              ^
    231.   			*(rp++) = t2;
    232.   			if (t1)
