crypto/bn/bn_mul.c:737: error: INTEGER_OVERFLOW_L2
  ([0, max(4294967295, `*r`)] + [0, 2]):unsigned32 by call to `bn_add_words`.
Showing all 14 steps of the trace


crypto/bn/bn_mul.c:724:1: Parameter `*r`
722.    * r needs to be n2 words and t needs to be n2*2
723.    */
724. > void bn_mul_low_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2,
725.   	     BN_ULONG *t)
726.   	{

crypto/bn/bn_mul.c:733:2: Call
731.   # endif
732.   
733.   	bn_mul_recursive(r,a,b,n,0,0,&(t[0]));
        ^
734.   	if (n >= BN_MUL_LOW_RECURSIVE_SIZE_NORMAL)
735.   		{

crypto/bn/bn_mul.c:524:12: Call
  522.   	 * c1 holds the carry bits
  523.   	 */
  524.   	c1+=(int)(bn_add_words(&(r[n]),&(r[n]),&(t[n2]),n2));
                    ^
  525.   	if (c1)
  526.   		{

crypto/bn/bn_asm.c:346:14: Assignment
    344.   
    345.   	assert(n >= 0);
    346.   	if (n <= 0) return((BN_ULONG)0);
                        ^
    347.   
    348.   	c=0;

crypto/bn/bn_mul.c:524:2: Assignment
  522.   	 * c1 holds the carry bits
  523.   	 */
  524.   	c1+=(int)(bn_add_words(&(r[n]),&(r[n]),&(t[n2]),n2));
          ^
  525.   	if (c1)
  526.   		{

crypto/bn/bn_mul.c:529:3: Assignment
  527.   		p= &(r[n+n2]);
  528.   		lo= *p;
  529.   		ln=(lo+c1)&BN_MASK2;
           ^
  530.   		*p=ln;
  531.   

crypto/bn/bn_mul.c:530:3: Assignment
  528.   		lo= *p;
  529.   		ln=(lo+c1)&BN_MASK2;
  530.   		*p=ln;
           ^
  531.   
  532.   		/* The overflow will stop before we over write

crypto/bn/bn_mul.c:737:3: Call
735.   		{
736.   		bn_mul_low_recursive(&(t[0]),&(a[0]),&(b[n]),n,&(t[n2]));
737.   		bn_add_words(&(r[n]),&(r[n]),&(t[0]),n);
         ^
738.   		bn_mul_low_recursive(&(t[0]),&(a[n]),&(b[0]),n,&(t[n2]));
739.   		bn_add_words(&(r[n]),&(r[n]),&(t[0]),n);

crypto/bn/bn_asm.c:341:1: <LHS trace>
339.   	}
340.   #else /* !BN_LLONG */
341. > BN_ULONG bn_add_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b, int n)
342.           {
343.   	BN_ULONG c,l,t;

crypto/bn/bn_asm.c:341:1: Parameter `*a`
  339.   	}
  340.   #else /* !BN_LLONG */
  341. > BN_ULONG bn_add_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b, int n)
  342.           {
  343.   	BN_ULONG c,l,t;

crypto/bn/bn_asm.c:352:3: Assignment
  350.   	while (n&~3)
  351.   		{
  352.   		t=a[0];
           ^
  353.   		t=(t+c)&BN_MASK2;
  354.   		c=(t < c);

crypto/bn/bn_asm.c:348:2: <RHS trace>
346.   	if (n <= 0) return((BN_ULONG)0);
347.   
348.   	c=0;
        ^
349.   #ifndef OPENSSL_SMALL_FOOTPRINT
350.   	while (n&~3)

crypto/bn/bn_asm.c:348:2: Assignment
  346.   	if (n <= 0) return((BN_ULONG)0);
  347.   
  348.   	c=0;
          ^
  349.   #ifndef OPENSSL_SMALL_FOOTPRINT
  350.   	while (n&~3)

crypto/bn/bn_asm.c:353:3: Binary operation: ([0, max(4294967295, *r)] + [0, 2]):unsigned32 by call to `bn_add_words` 
  351.   		{
  352.   		t=a[0];
  353.   		t=(t+c)&BN_MASK2;
           ^
  354.   		c=(t < c);
  355.   		l=(t+b[0])&BN_MASK2;
