engines/ccgost/gost2001.c:441: error: BUFFER_OVERRUN_L3
  Offset: 0 Size: [0, 8388607] by call to `BN_rand_range`.
Showing all 11 steps of the trace


engines/ccgost/gost2001.c:433:20: Call
431.       const EC_GROUP *group = EC_KEY_get0_group(ec);
432.   
433.       if (!group || !EC_GROUP_get_order(group, order, NULL)) {
                          ^
434.           GOSTerr(GOST_F_GOST2001_KEYGEN, ERR_R_INTERNAL_ERROR);
435.           BN_free(d);

crypto/ec/ec_lib.c:315:10: Call
  313.   int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx)
  314.   {
  315.       if (!BN_copy(order, group->order))
                  ^
  316.           return 0;
  317.   

crypto/bn/bn_lib.c:429:1: Parameter `*a->d`
    427.   }
    428.   
    429. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
    430.   {
    431.       int i;

engines/ccgost/gost2001.c:441:14: Call
439.   
440.       do {
441.           if (!BN_rand_range(d, order)) {
                    ^
442.               GOSTerr(GOST_F_GOST2001_KEYGEN,
443.                       GOST_R_RANDOM_NUMBER_GENERATOR_FAILED);

crypto/bn/bn_rand.c:281:1: Parameter `*r->d`
  279.   }
  280.   
  281. > int BN_rand_range(BIGNUM *r, const BIGNUM *range)
  282.   {
  283.       return bn_rand_range(0, r, range);

crypto/bn/bn_rand.c:283:12: Call
  281.   int BN_rand_range(BIGNUM *r, const BIGNUM *range)
  282.   {
  283.       return bn_rand_range(0, r, range);
                    ^
  284.   }
  285.   

crypto/bn/bn_rand.c:216:1: Parameter `*r->d`
    214.   
    215.   /* random number r:  0 <= r < range */
    216. > static int bn_rand_range(int pseudo, BIGNUM *r, const BIGNUM *range)
    217.   {
    218.       int (*bn_rand) (BIGNUM *, int, int, int) =

crypto/bn/bn_rand.c:233:9: Call
    231.   
    232.       if (n == 1)
    233.           BN_zero(r);
                   ^
    234.       else if (!BN_is_bit_set(range, n - 2) && !BN_is_bit_set(range, n - 3)) {
    235.           /*

crypto/bn/bn_lib.c:530:1: <Length trace>
528.   }
529.   
530. > int BN_set_word(BIGNUM *a, BN_ULONG w)
531.   {
532.       bn_check_top(a);

crypto/bn/bn_lib.c:530:1: Parameter `*a->d`
      528.   }
      529.   
      530. > int BN_set_word(BIGNUM *a, BN_ULONG w)
      531.   {
      532.       bn_check_top(a);

crypto/bn/bn_lib.c:536:5: Array access: Offset: 0 Size: [0, 8388607] by call to `BN_rand_range` 
      534.           return (0);
      535.       a->neg = 0;
      536.       a->d[0] = w;
                 ^
      537.       a->top = (w ? 1 : 0);
      538.       bn_check_top(a);
