crypto/pem/pvkfmt.c:527: error: INTEGER_OVERFLOW_L2
  ([0, `pk->pkey.dsa->q->top`] - 1):unsigned64 by call to `write_dsa`.
Showing all 9 steps of the trace


crypto/pem/pvkfmt.c:483:1: Parameter `pk->pkey.dsa->q->top`
481.   static void write_dsa(unsigned char **out, DSA *dsa, int ispub);
482.   	
483. > static int do_i2b(unsigned char **out, EVP_PKEY *pk, int ispub)
484.   	{
485.   	unsigned char *p;

crypto/pem/pvkfmt.c:527:3: Call
525.   	write_ledword(&p, bitlen);
526.   	if (keyalg == MS_KEYALG_DSS_SIGN)
527.   		write_dsa(&p, pk->pkey.dsa, ispub);
         ^
528.   	else
529.   		write_rsa(&p, pk->pkey.rsa, ispub);

crypto/pem/pvkfmt.c:628:1: Parameter `dsa->q->top`
  626.   
  627.   	
  628. > static void write_dsa(unsigned char **out, DSA *dsa, int ispub)
  629.   	{
  630.   	int nbyte;

crypto/pem/pvkfmt.c:633:2: Call
  631.   	nbyte = BN_num_bytes(dsa->p);
  632.   	write_lebn(out, dsa->p, nbyte);
  633.   	write_lebn(out, dsa->q, 20);
          ^
  634.   	write_lebn(out, dsa->g, nbyte);
  635.   	if (ispub)

crypto/pem/pvkfmt.c:449:1: Parameter `bn->top`
    447.   	}
    448.   
    449. > static void write_lebn(unsigned char **out, const BIGNUM *bn, int len)
    450.   	{
    451.   	int nb, i;

crypto/pem/pvkfmt.c:453:7: Call
    451.   	int nb, i;
    452.   	unsigned char *p = *out, *q, c;
    453.   	nb = BN_num_bytes(bn);
                 ^
    454.   	BN_bn2bin(bn, p);
    455.   	q = p + nb - 1;

crypto/bn/bn_lib.c:248:1: <LHS trace>
246.   	}
247.   
248. > int BN_num_bits(const BIGNUM *a)
249.   	{
250.   	int i = a->top - 1;

crypto/bn/bn_lib.c:248:1: Parameter `a->top`
      246.   	}
      247.   
      248. > int BN_num_bits(const BIGNUM *a)
      249.   	{
      250.   	int i = a->top - 1;

crypto/bn/bn_lib.c:250:2: Binary operation: ([0, pk->pkey.dsa->q->top] - 1):unsigned64 by call to `write_dsa` 
      248.   int BN_num_bits(const BIGNUM *a)
      249.   	{
      250.   	int i = a->top - 1;
              ^
      251.   	bn_check_top(a);
      252.   
