crypto/rsa/rsa_ossl.c:687: error: INTEGER_OVERFLOW_L2
  (0 - [0, max(1, `rsa->q->top`)]):unsigned64 by call to `bn_mul_fixed_top`.
Showing all 13 steps of the trace


crypto/rsa/rsa_ossl.c:592:1: Parameter `rsa->q->top`
590.   }
591.   
592. > static int rsa_ossl_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx)
593.   {
594.       BIGNUM *r1, *m1, *vrfy, *r2, *m[RSA_MAX_PRIME_NUM - 2];

crypto/rsa/rsa_ossl.c:666:17: Call
664.               || !bn_to_mont_fixed_top(m1, m1, rsa->_method_mod_q, ctx)
665.               /* m1 = m1^dmq1 mod q */
666.               || !BN_mod_exp_mont_consttime(m1, m1, rsa->dmq1, rsa->q, ctx,
                       ^
667.                                             rsa->_method_mod_q)
668.               /* r1 = I mod p */

crypto/bn/bn_exp.c:592:1: Parameter `m->top`
  590.    * http://www.daemonology.net/hyperthreading-considered-harmful/)
  591.    */
  592. > int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
  593.                                 const BIGNUM *m, BN_CTX *ctx,
  594.                                 BN_MONT_CTX *in_mont)

crypto/bn/bn_exp.c:613:10: Call
  611.       bn_check_top(m);
  612.   
  613.       if (!BN_is_odd(m)) {
                  ^
  614.           BNerr(BN_F_BN_MOD_EXP_MONT_CONSTTIME, BN_R_CALLED_WITH_EVEN_MODULUS);
  615.           return 0;

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

crypto/rsa/rsa_ossl.c:687:17: Call
685.               || !bn_mul_mont_fixed_top(r1, r1, rsa->iqmp, rsa->_method_mod_p,
686.                                         ctx)
687.               || !bn_mul_fixed_top(r0, r1, rsa->q, ctx)
                       ^
688.               || !bn_mod_add_fixed_top(r0, r0, m1, rsa->n))
689.               goto err;

crypto/bn/bn_mul.c:507:1: Parameter `b->top`
  505.   }
  506.   
  507. > int bn_mul_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
  508.   {
  509.       int ret = 0;

crypto/bn/bn_mul.c:525:5: Assignment
  523.   
  524.       al = a->top;
  525.       bl = b->top;
             ^
  526.   
  527.       if ((al == 0) || (bl == 0)) {

crypto/bn/bn_mul.c:574:21: Call
  572.               }
  573.               if (i == -1) {
  574.                   j = BN_num_bits_word((BN_ULONG)bl);
                             ^
  575.               }
  576.               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, rsa->q->top)]):unsigned64 by call to `bn_mul_fixed_top` 
    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;
