crypto/bn/bn_add.c:87: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - 1):unsigned32 by call to `BN_usub`.
Showing all 8 steps of the trace


crypto/bn/bn_add.c:64:1: Parameter `*b->d`
62.   
63.   /* r can == a or b */
64. > int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
65.   	{
66.   	const BIGNUM *tmp;

crypto/bn/bn_add.c:85:7: Call
83.   		/* we are now a - b */
84.   
85.   		if (BN_ucmp(a,b) < 0)
            ^
86.   			{
87.   			if (!BN_usub(r,b,a)) return(0);

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

crypto/bn/bn_add.c:87:9: Call
85.   		if (BN_ucmp(a,b) < 0)
86.   			{
87.   			if (!BN_usub(r,b,a)) return(0);
              ^
88.   			r->neg=1;
89.   			}

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):unsigned32 by call to `BN_usub` 
  228.   			dif--;
  229.   			t1 = *(ap++);
  230.   			t2 = (t1-1)&BN_MASK2;
            ^
  231.   			*(rp++) = t2;
  232.   			if (t1)
