crypto/asn1_dsa.c:179: error: INTEGER_OVERFLOW_L2
  ([1, +oo] - [2, 4]):unsigned64 by call to `encode_der_integer`.
Showing all 8 steps of the trace


crypto/asn1_dsa.c:149:1: Parameter `len`
147.    * or 0 if an error occurs.
148.    */
149. > size_t encode_der_dsa_sig(const BIGNUM *r, const BIGNUM *s,
150.                             unsigned char **ppout, size_t len)
151.   {

crypto/asn1_dsa.c:179:14: Call
177.           return 0;
178.       produced += c;
179.       if ((c = encode_der_integer(s, pp, len - produced)) == 0)
                    ^
180.           return 0;
181.       produced += c;

crypto/asn1_dsa.c:94:1: <LHS trace>
92.    * or 0 if an error occurs.
93.    */
94. > size_t encode_der_integer(const BIGNUM *n, unsigned char **ppout, size_t len)
95.   {
96.       unsigned char *out = NULL;

crypto/asn1_dsa.c:94:1: Parameter `len`
  92.    * or 0 if an error occurs.
  93.    */
  94. > size_t encode_der_integer(const BIGNUM *n, unsigned char **ppout, size_t len)
  95.   {
  96.       unsigned char *out = NULL;

crypto/asn1_dsa.c:121:5: <RHS trace>
119.           *out++ = ID_INTEGER;
120.       }
121.       produced = 1;
           ^
122.       if ((c = encode_der_length(cont_len, pp, len - produced)) == 0)
123.           return 0;

crypto/asn1_dsa.c:121:5: Assignment
  119.           *out++ = ID_INTEGER;
  120.       }
  121.       produced = 1;
             ^
  122.       if ((c = encode_der_length(cont_len, pp, len - produced)) == 0)
  123.           return 0;

crypto/asn1_dsa.c:124:5: Assignment
  122.       if ((c = encode_der_length(cont_len, pp, len - produced)) == 0)
  123.           return 0;
  124.       produced += c;
             ^
  125.       if (cont_len > len - produced)
  126.           return 0;

crypto/asn1_dsa.c:125:9: Binary operation: ([1, +oo] - [2, 4]):unsigned64 by call to `encode_der_integer` 
  123.           return 0;
  124.       produced += c;
  125.       if (cont_len > len - produced)
                 ^
  126.           return 0;
  127.       if (pp != NULL) {
