crypto/dsa/dsa_ameth.c:183: error: BUFFER_OVERRUN_L3
  Offset: [1, +oo] Size: [0, 8388607] by call to `BN_mod_exp`.
Showing all 11 steps of the trace


crypto/dsa/dsa_ameth.c:168:13: Call
166.       /* We have parameters now set private key */
167.       if ((dsa->priv_key = BN_secure_new()) == NULL
168.           || !ASN1_INTEGER_to_BN(privkey, dsa->priv_key)) {
                   ^
169.           DSAerr(DSA_F_DSA_PRIV_DECODE, DSA_R_BN_ERROR);
170.           goto dsaerr;

crypto/asn1/a_int.c:559:12: Call
  557.   BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn)
  558.   {
  559.       return asn1_string_to_bn(ai, bn, V_ASN1_INTEGER);
                    ^
  560.   }
  561.   

crypto/asn1/a_int.c:493:1: Parameter `bn->d`
    491.   }
    492.   
    493. > static BIGNUM *asn1_string_to_bn(const ASN1_INTEGER *ai, BIGNUM *bn,
    494.                                    int itype)
    495.   {

crypto/dsa/dsa_ameth.c:183:10: Call
181.   
182.       BN_set_flags(dsa->priv_key, BN_FLG_CONSTTIME);
183.       if (!BN_mod_exp(dsa->pub_key, dsa->g, dsa->priv_key, dsa->p, ctx)) {
                ^
184.           DSAerr(DSA_F_DSA_PRIV_DECODE, DSA_R_BN_ERROR);
185.           goto dsaerr;

crypto/bn/bn_exp.c:89:1: Parameter `*m->d`
  87.   }
  88.   
  89. > int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
  90.                  BN_CTX *ctx)
  91.   {

crypto/bn/bn_exp.c:144:19: Call
  142.           } else
  143.   # endif
  144.               ret = BN_mod_exp_mont(r, a, p, m, ctx, NULL);
                           ^
  145.       } else
  146.   #endif

crypto/bn/bn_exp.c:388:14: <Offset trace>
386.           /* 2^(top*BN_BITS2) - m */
387.           r->d[0] = (0 - m->d[0]) & BN_MASK2;
388.           for (i = 1; i < j; i++)
                    ^
389.               r->d[i] = (~m->d[i]) & BN_MASK2;
390.           r->top = j;

crypto/bn/bn_exp.c:388:14: Assignment
    386.           /* 2^(top*BN_BITS2) - m */
    387.           r->d[0] = (0 - m->d[0]) & BN_MASK2;
    388.           for (i = 1; i < j; i++)
                        ^
    389.               r->d[i] = (~m->d[i]) & BN_MASK2;
    390.           r->top = j;

crypto/bn/bn_exp.c:296:1: <Length trace>
294.   }
295.   
296. > int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
297.                       const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)
298.   {

crypto/bn/bn_exp.c:296:1: Parameter `*m->d`
    294.   }
    295.   
    296. > int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
    297.                       const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)
    298.   {

crypto/bn/bn_exp.c:389:25: Array access: Offset: [1, +oo] Size: [0, 8388607] by call to `BN_mod_exp` 
    387.           r->d[0] = (0 - m->d[0]) & BN_MASK2;
    388.           for (i = 1; i < j; i++)
    389.               r->d[i] = (~m->d[i]) & BN_MASK2;
                                   ^
    390.           r->top = j;
    391.           r->flags |= BN_FLG_FIXED_TOP;
