crypto/rsa/rsa_x931g.c:160: error: BUFFER_OVERRUN_L3
  Offset: 0 Size: [0, 8388607] by call to `BN_X931_generate_Xpq`.
Showing all 17 steps of the trace


crypto/rsa/rsa_x931g.c:156:10: Call
154.   
155.       BN_CTX_start(ctx);
156.       Xp = BN_CTX_get(ctx);
                ^
157.       Xq = BN_CTX_get(ctx);
158.       if (Xq == NULL)

crypto/bn/bn_ctx.c:238:5: Call
  236.       }
  237.       /* OK, make sure the returned bignum is "zero" */
  238.       BN_zero(ret);
             ^
  239.       /* clear BN_FLG_CONSTTIME if leaked from previous frames */
  240.       ret->flags &= (~BN_FLG_CONSTTIME);

crypto/bn/bn_lib.c:361:1: Parameter `*a->d`
    359.   }
    360.   
    361. > int BN_set_word(BIGNUM *a, BN_ULONG w)
    362.   {
    363.       bn_check_top(a);

crypto/bn/bn_lib.c:364:9: Call
    362.   {
    363.       bn_check_top(a);
    364.       if (bn_expand(a, (int)sizeof(BN_ULONG) * 8) == NULL)
                   ^
    365.           return 0;
    366.       a->neg = 0;

crypto/bn/bn_lcl.h:660:1: Parameter `*a->d`
      658.                            const BIGNUM *add, const BIGNUM *rem, BN_CTX *ctx);
      659.   
      660. > static ossl_inline BIGNUM *bn_expand(BIGNUM *a, int bits)
      661.   {
      662.       if (bits > (INT_MAX - BN_BITS2 + 1))

crypto/rsa/rsa_x931g.c:160:10: Call
158.       if (Xq == NULL)
159.           goto error;
160.       if (!BN_X931_generate_Xpq(Xp, Xq, bits, ctx))
                ^
161.           goto error;
162.   

crypto/bn/bn_x931p.c:160:1: Parameter `*Xp->d`
  158.    */
  159.   
  160. > int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx)
  161.   {
  162.       BIGNUM *t;

crypto/bn/bn_x931p.c:176:10: Call
  174.        * exceeded.
  175.        */
  176.       if (!BN_priv_rand(Xp, nbits, BN_RAND_TOP_TWO, BN_RAND_BOTTOM_ANY))
                  ^
  177.           goto err;
  178.   

crypto/bn/bn_rand.c:124:1: Parameter `*rnd->d`
    122.   }
    123.   
    124. > int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom)
    125.   {
    126.       return bnrand(PRIVATE, rnd, bits, top, bottom);

crypto/bn/bn_rand.c:126:12: Call
    124.   int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom)
    125.   {
    126.       return bnrand(PRIVATE, rnd, bits, top, bottom);
                      ^
    127.   }
    128.   

crypto/bn/bn_rand.c:23:1: Parameter `*rnd->d`
      21.   } BNRAND_FLAG;
      22.   
      23. > static int bnrand(BNRAND_FLAG flag, BIGNUM *rnd, int bits, int top, int bottom)
      24.   {
      25.       unsigned char *buf = NULL;

crypto/bn/bn_rand.c:31:9: Call
      29.           if (top != BN_RAND_TOP_ANY || bottom != BN_RAND_BOTTOM_ANY)
      30.               goto toosmall;
      31.           BN_zero(rnd);
                    ^
      32.           return 1;
      33.       }

crypto/bn/bn_lib.c:361:1: <Length trace>
359.   }
360.   
361. > int BN_set_word(BIGNUM *a, BN_ULONG w)
362.   {
363.       bn_check_top(a);

crypto/bn/bn_lib.c:361:1: Parameter `*a->d`
        359.   }
        360.   
        361. > int BN_set_word(BIGNUM *a, BN_ULONG w)
        362.   {
        363.       bn_check_top(a);

crypto/bn/bn_lib.c:364:9: Call
        362.   {
        363.       bn_check_top(a);
        364.       if (bn_expand(a, (int)sizeof(BN_ULONG) * 8) == NULL)
                       ^
        365.           return 0;
        366.       a->neg = 0;

crypto/bn/bn_lcl.h:660:1: Parameter `*a->d`
          658.                            const BIGNUM *add, const BIGNUM *rem, BN_CTX *ctx);
          659.   
          660. > static ossl_inline BIGNUM *bn_expand(BIGNUM *a, int bits)
          661.   {
          662.       if (bits > (INT_MAX - BN_BITS2 + 1))

crypto/bn/bn_lib.c:367:5: Array access: Offset: 0 Size: [0, 8388607] by call to `BN_X931_generate_Xpq` 
        365.           return 0;
        366.       a->neg = 0;
        367.       a->d[0] = w;
                   ^
        368.       a->top = (w ? 1 : 0);
        369.       a->flags &= ~BN_FLG_FIXED_TOP;
