test/bntest.c:1984: error: INTEGER_OVERFLOW_L2
  (0 - [0, 1]):unsigned64 by call to `BN_mod_mul`.
Showing all 17 steps of the trace


test/bntest.c:1984:10: Call
1982.       ERR_clear_error();
1983.   
1984.       if (!TEST_false(BN_mod_mul(a, BN_value_one(), BN_value_one(), zero, ctx)))
                 ^
1985.           goto err;
1986.       ERR_clear_error();

crypto/bn/bn_lib.c:83:5: Assignment
  81.   const BIGNUM *BN_value_one(void)
  82.   {
  83.       static const BN_ULONG data_one = 1L;
            ^
  84.       static const BIGNUM const_one =
  85.           { (BN_ULONG *)&data_one, 1, 1, 0, BN_FLG_STATIC_DATA };

test/bntest.c:1984:10: Call
1982.       ERR_clear_error();
1983.   
1984.       if (!TEST_false(BN_mod_mul(a, BN_value_one(), BN_value_one(), zero, ctx)))
                 ^
1985.           goto err;
1986.       ERR_clear_error();

crypto/bn/bn_mod.c:193:1: Parameter `*b->d`
  191.   
  192.   /* slow but works */
  193. > int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m,
  194.                  BN_CTX *ctx)
  195.   {

crypto/bn/bn_mod.c:210:14: Call
  208.               goto err;
  209.       } else {
  210.           if (!BN_mul(t, a, b, ctx))
                      ^
  211.               goto err;
  212.       }

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

crypto/bn/bn_mul.c:499:15: Call
    497.   int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
    498.   {
    499.       int ret = bn_mul_fixed_top(r, a, b, ctx);
                         ^
    500.   
    501.       bn_correct_top(r);

crypto/bn/bn_mul.c:507:1: Parameter `*b->d`
      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:587:17: Call
      585.                   if (bn_wexpand(rr, k * 4) == NULL)
      586.                       goto err;
      587.                   bn_mul_part_recursive(rr->d, a->d, b->d,
                             ^
      588.                                         j, al - j, bl - j, t->d);
      589.               } else {            /* al <= j || bl <= j */

crypto/bn/bn_mul.c:322:1: Parameter `*b`
        320.    */
        321.   /* tnX may not be negative but less than n */
        322. > void bn_mul_part_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n,
        323.                              int tna, int tnb, BN_ULONG *t)
        324.   {

crypto/bn/bn_mul.c:336:10: Call
        334.       /* r=(a[0]-a[1])*(b[1]-b[0]) */
        335.       c1 = bn_cmp_part_words(a, &(a[n]), tna, n - tna);
        336.       c2 = bn_cmp_part_words(&(b[n]), b, tnb, tnb - n);
                        ^
        337.       neg = 0;
        338.       switch (c1 * 3 + c2) {

crypto/bn/bn_lib.c:706:1: Parameter `*b`
          704.    */
          705.   
          706. > int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b, int cl, int dl)
          707.   {
          708.       int n, i;

crypto/bn/bn_mul.c:341:9: Call
        339.       case -4:
        340.           bn_sub_part_words(t, &(a[n]), a, tna, tna - n); /* - */
        341.           bn_sub_part_words(&(t[n]), b, &(b[n]), tnb, n - tnb); /* - */
                       ^
        342.           break;
        343.       case -3:

crypto/bn/bn_mul.c:27:1: <RHS trace>
25.    */
26.   
27. > BN_ULONG bn_sub_part_words(BN_ULONG *r,
28.                              const BN_ULONG *a, const BN_ULONG *b,
29.                              int cl, int dl)

crypto/bn/bn_mul.c:27:1: Parameter `*b`
          25.    */
          26.   
          27. > BN_ULONG bn_sub_part_words(BN_ULONG *r,
          28.                              const BN_ULONG *a, const BN_ULONG *b,
          29.                              int cl, int dl)

crypto/bn/bn_mul.c:45:13: Assignment
          43.       if (dl < 0) {
          44.           for (;;) {
          45.               t = b[0];
                            ^
          46.               r[0] = (0 - t - c) & BN_MASK2;
          47.               if (t != 0)

crypto/bn/bn_mul.c:46:13: Binary operation: (0 - [0, 1]):unsigned64 by call to `BN_mod_mul` 
          44.           for (;;) {
          45.               t = b[0];
          46.               r[0] = (0 - t - c) & BN_MASK2;
                            ^
          47.               if (t != 0)
          48.                   c = 1;
