crypto/rsa/rsa_chk.c:144: error: INTEGER_OVERFLOW_L2
  (0 - [0, max(1, `key->e->top`)]):unsigned64 by call to `BN_mod_mul`.
Showing all 17 steps of the trace


crypto/rsa/rsa_chk.c:19:1: Parameter `key->e->top`
17.   }
18.   
19. > int RSA_check_key_ex(const RSA *key, BN_GENCB *cb)
20.   {
21.       BIGNUM *i, *j, *k, *l, *m;

crypto/rsa/rsa_chk.c:55:9: Call
53.       }
54.   
55.       if (BN_is_one(key->e)) {
              ^
56.           ret = 0;
57.           RSAerr(RSA_F_RSA_CHECK_KEY_EX, RSA_R_BAD_E_VALUE);

crypto/bn/bn_lib.c:858:1: Parameter `a->top`
  856.   }
  857.   
  858. > int BN_is_one(const BIGNUM *a)
  859.   {
  860.       return BN_abs_is_word(a, 1) && !a->neg;

crypto/bn/bn_lib.c:860:12: Call
  858.   int BN_is_one(const BIGNUM *a)
  859.   {
  860.       return BN_abs_is_word(a, 1) && !a->neg;
                    ^
  861.   }
  862.   

crypto/bn/bn_lib.c:848:1: Parameter `a->top`
    846.   }
    847.   
    848. > int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w)
    849.   {
    850.       return ((a->top == 1) && (a->d[0] == w)) || ((w == 0) && (a->top == 0));

crypto/rsa/rsa_chk.c:59:10: Call
57.           RSAerr(RSA_F_RSA_CHECK_KEY_EX, RSA_R_BAD_E_VALUE);
58.       }
59.       if (!BN_is_odd(key->e)) {
               ^
60.           ret = 0;
61.           RSAerr(RSA_F_RSA_CHECK_KEY_EX, RSA_R_BAD_E_VALUE);

crypto/bn/bn_lib.c:868:1: Parameter `a->top`
  866.   }
  867.   
  868. > int BN_is_odd(const BIGNUM *a)
  869.   {
  870.       return (a->top > 0) && (a->d[0] & 1);

crypto/rsa/rsa_chk.c:144:10: Call
142.           goto err;
143.       }
144.       if (!BN_mod_mul(i, key->d, key->e, k, ctx)) {
                ^
145.           ret = -1;
146.           goto err;

crypto/bn/bn_mod.c:73:1: Parameter `b->top`
  71.   
  72.   /* slow but works */
  73. > int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m,
  74.                  BN_CTX *ctx)
  75.   {

crypto/bn/bn_mod.c:90:14: Call
  88.               goto err;
  89.       } else {
  90.           if (!BN_mul(t, a, b, ctx))
                     ^
  91.               goto err;
  92.       }

crypto/bn/bn_mul.c:497:1: Parameter `b->top`
    495.   #endif                          /* BN_RECURSION */
    496.   
    497. > int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
    498.   {
    499.       int ret = 0;

crypto/bn/bn_mul.c:515:5: Assignment
    513.   
    514.       al = a->top;
    515.       bl = b->top;
               ^
    516.   
    517.       if ((al == 0) || (bl == 0)) {

crypto/bn/bn_mul.c:564:21: Call
    562.               }
    563.               if (i == -1) {
    564.                   j = BN_num_bits_word((BN_ULONG)bl);
                               ^
    565.               }
    566.               j = 1 << (j - 1);

crypto/bn/bn_lib.c:90:1: <RHS trace>
88.   }
89.   
90. > int BN_num_bits_word(BN_ULONG l)
91.   {
92.       BN_ULONG x, mask;

crypto/bn/bn_lib.c:90:1: Parameter `l`
      88.   }
      89.   
      90. > int BN_num_bits_word(BN_ULONG l)
      91.   {
      92.       BN_ULONG x, mask;

crypto/bn/bn_lib.c:96:5: Assignment
      94.   
      95.   #if BN_BITS2 > 32
      96.       x = l >> 32;
                ^
      97.       mask = (0 - x) & BN_MASK2;
      98.       mask = (0 - (mask >> (BN_BITS2 - 1)));

crypto/bn/bn_lib.c:97:5: Binary operation: (0 - [0, max(1, key->e->top)]):unsigned64 by call to `BN_mod_mul` 
      95.   #if BN_BITS2 > 32
      96.       x = l >> 32;
      97.       mask = (0 - x) & BN_MASK2;
                 ^
      98.       mask = (0 - (mask >> (BN_BITS2 - 1)));
      99.       bits += 32 & mask;
