test/bntest.c:922: error: BUFFER_OVERRUN_L3
  Offset added: [8, +oo] Size: [0, 536870848] by call to `BN_mod_exp_recp`.
Showing all 12 steps of the trace


test/bntest.c:902:10: Call
900.        */
901.   
902.       if (!BN_generate_prime_ex(b, 512, 0, NULL, NULL, NULL))
                ^
903.           goto err;
904.       b->neg = rand_neg();

crypto/bn/bn_prime.c:54:1: Parameter `ret->top`
  52.   }
  53.   
  54. > int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe,
  55.                            const BIGNUM *add, const BIGNUM *rem, BN_GENCB *cb)
  56.   {

test/bntest.c:922:14: Call
920.           b->neg = 0;
921.   
922.           if (!BN_mod_exp_recp(r, a, t, b, ctx))
                    ^
923.               goto err;
924.           b->neg = 1;

crypto/bn/bn_exp.c:161:1: Parameter `m->top`
  159.   }
  160.   
  161. > int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
  162.                       const BIGNUM *m, BN_CTX *ctx)
  163.   {

crypto/bn/bn_exp.c:198:14: Call
  196.       if (m->neg) {
  197.           /* ignore sign of 'm' */
  198.           if (!BN_copy(aa, m))
                      ^
  199.               goto err;
  200.           aa->neg = 0;

crypto/bn/bn_lib.c:323:1: <Offset trace>
321.   }
322.   
323. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
324.   {
325.       bn_check_top(b);

crypto/bn/bn_lib.c:323:1: Parameter `b->top`
    321.   }
    322.   
    323. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
    324.   {
    325.       bn_check_top(b);

crypto/bn/bn_lib.c:323:1: <Length trace>
321.   }
322.   
323. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
324.   {
325.       bn_check_top(b);

crypto/bn/bn_lib.c:323:1: Parameter `*a->d`
    321.   }
    322.   
    323. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
    324.   {
    325.       bn_check_top(b);

crypto/bn/bn_lib.c:329:9: Call
    327.       if (a == b)
    328.           return a;
    329.       if (bn_wexpand(a, b->top) == NULL)
                   ^
    330.           return NULL;
    331.   

crypto/bn/bn_lib.c:948:1: Parameter `*a->d`
      946.   }
      947.   
      948. > BIGNUM *bn_wexpand(BIGNUM *a, int words)
      949.   {
      950.       return (words <= a->dmax) ? a : bn_expand2(a, words);

crypto/bn/bn_lib.c:333:9: Array access: Offset added: [8, +oo] Size: [0, 536870848] by call to `BN_mod_exp_recp` 
    331.   
    332.       if (b->top > 0)
    333.           memcpy(a->d, b->d, sizeof(b->d[0]) * b->top);
                   ^
    334.   
    335.       a->top = b->top;
