crypto/bn/bn_exp.c:733: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - [0, max(4294967295, `*in_mont->N.d`)]):unsigned32 by call to `BN_mod_mul_montgomery`.
Showing all 13 steps of the trace


crypto/bn/bn_exp.c:625:1: Parameter `*in_mont->N.d`
623.    * http://www.daemonology.net/hyperthreading-considered-harmful/)
624.    */
625. > int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
626.   		    const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)
627.   	{

crypto/bn/bn_exp.c:733:12: Call
731.   		if (!BN_to_montgomery(&am,&am,mont,ctx))	goto err;
732.   		}
733.   	else	if (!BN_to_montgomery(&am,a,mont,ctx))		goto err;
                  ^
734.   
735.   #if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc))

crypto/bn/bn_mont.c:131:1: Parameter `*mont->N.d`
  129.   #endif
  130.   
  131. > int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
  132.   			  BN_MONT_CTX *mont, BN_CTX *ctx)
  133.   	{

crypto/bn/bn_mont.c:167:7: Call
  165.   	/* reduce from aRR to aR */
  166.   #ifdef MONT_WORD
  167.   	if (!BN_from_montgomery_word(r,tmp,mont)) goto err;
               ^
  168.   #else
  169.   	if (!BN_from_montgomery(r,tmp,mont,ctx)) goto err;

crypto/bn/bn_mont.c:179:1: Parameter `*r->d`
    177.   
    178.   #ifdef MONT_WORD
    179. > static int BN_from_montgomery_word(BIGNUM *ret, BIGNUM *r, BN_MONT_CTX *mont)
    180.   	{
    181.   	BIGNUM *n;

crypto/bn/bn_mont.c:247:4: Call
    245.   	size_t m;
    246.   
    247.   	v=bn_sub_words(rp,ap,np,nl)-carry;
              ^
    248.   	/* if subtraction result is real, then
    249.   	 * trick unconditional memcpy below to perform in-place

crypto/bn/bn_asm.c:394:1: <LHS trace>
392.   #endif /* !BN_LLONG */
393.   
394. > BN_ULONG bn_sub_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b, int n)
395.           {
396.   	BN_ULONG t1,t2;

crypto/bn/bn_asm.c:394:1: Parameter `*a`
      392.   #endif /* !BN_LLONG */
      393.   
      394. > BN_ULONG bn_sub_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b, int n)
      395.           {
      396.   	BN_ULONG t1,t2;

crypto/bn/bn_asm.c:405:3: Assignment
      403.   	while (n&~3)
      404.   		{
      405.   		t1=a[0]; t2=b[0];
               ^
      406.   		r[0]=(t1-t2-c)&BN_MASK2;
      407.   		if (t1 != t2) c=(t1 < t2);

crypto/bn/bn_asm.c:394:1: <RHS trace>
392.   #endif /* !BN_LLONG */
393.   
394. > BN_ULONG bn_sub_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b, int n)
395.           {
396.   	BN_ULONG t1,t2;

crypto/bn/bn_asm.c:394:1: Parameter `*b`
      392.   #endif /* !BN_LLONG */
      393.   
      394. > BN_ULONG bn_sub_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b, int n)
      395.           {
      396.   	BN_ULONG t1,t2;

crypto/bn/bn_asm.c:405:12: Assignment
      403.   	while (n&~3)
      404.   		{
      405.   		t1=a[0]; t2=b[0];
                        ^
      406.   		r[0]=(t1-t2-c)&BN_MASK2;
      407.   		if (t1 != t2) c=(t1 < t2);

crypto/bn/bn_asm.c:406:3: Binary operation: ([0, +oo] - [0, max(4294967295, *in_mont->N.d)]):unsigned32 by call to `BN_mod_mul_montgomery` 
      404.   		{
      405.   		t1=a[0]; t2=b[0];
      406.   		r[0]=(t1-t2-c)&BN_MASK2;
               ^
      407.   		if (t1 != t2) c=(t1 < t2);
      408.   		t1=a[1]; t2=b[1];
