crypto/asn1/x_pubkey.c:160: error: BUFFER_OVERRUN_L3
  Offset: [1, +oo] Size: [0, +oo] by call to `i2d_DSAparams`.
Showing all 15 steps of the trace


crypto/asn1/x_pubkey.c:157:5: Call
155.   		dsa->write_params=0;
156.   		ASN1_TYPE_free(a->parameter);
157.   		i=i2d_DSAparams(dsa,NULL);
           ^
158.   		p=(unsigned char *)Malloc(i);
159.   		pp=p;

crypto/asn1/i2d_dsap.c:74:17: Assignment
  72.   	unsigned char *p;
  73.   
  74.   	if (a == NULL) return(0);
                        ^
  75.   	num[0]=a->p;
  76.   	num[1]=a->q;

crypto/asn1/x_pubkey.c:157:3: Assignment
155.   		dsa->write_params=0;
156.   		ASN1_TYPE_free(a->parameter);
157.   		i=i2d_DSAparams(dsa,NULL);
         ^
158.   		p=(unsigned char *)Malloc(i);
159.   		pp=p;

crypto/asn1/x_pubkey.c:158:22: Array declaration
156.   		ASN1_TYPE_free(a->parameter);
157.   		i=i2d_DSAparams(dsa,NULL);
158.   		p=(unsigned char *)Malloc(i);
                            ^
159.   		pp=p;
160.   		i2d_DSAparams(dsa,&pp);

crypto/asn1/x_pubkey.c:158:3: Assignment
156.   		ASN1_TYPE_free(a->parameter);
157.   		i=i2d_DSAparams(dsa,NULL);
158.   		p=(unsigned char *)Malloc(i);
         ^
159.   		pp=p;
160.   		i2d_DSAparams(dsa,&pp);

crypto/asn1/x_pubkey.c:159:3: Assignment
157.   		i=i2d_DSAparams(dsa,NULL);
158.   		p=(unsigned char *)Malloc(i);
159.   		pp=p;
         ^
160.   		i2d_DSAparams(dsa,&pp);
161.   		a->parameter=ASN1_TYPE_new();

crypto/asn1/x_pubkey.c:160:3: Call
158.   		p=(unsigned char *)Malloc(i);
159.   		pp=p;
160.   		i2d_DSAparams(dsa,&pp);
         ^
161.   		a->parameter=ASN1_TYPE_new();
162.   		a->parameter->type=V_ASN1_SEQUENCE;

crypto/asn1/i2d_dsap.c:66:1: Parameter `**pp`
  64.   #include <openssl/dsa.h>
  65.   
  66. > int i2d_DSAparams(DSA *a, unsigned char **pp)
  67.   	{
  68.   	BIGNUM *num[3];

crypto/asn1/i2d_dsap.c:93:2: Assignment
  91.   	if (pp == NULL) return(t);
  92.   
  93.   	p= *pp;
         ^
  94.   	ASN1_put_object(&p,1,tot,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
  95.   

crypto/asn1/i2d_dsap.c:94:2: Call
  92.   
  93.   	p= *pp;
  94.   	ASN1_put_object(&p,1,tot,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
         ^
  95.   
  96.   	bs.type=V_ASN1_INTEGER;

crypto/asn1/asn1_lib.c:180:1: <Length trace>
178.   /* class 0 is constructed
179.    * constructed == 2 for indefinitle length constructed */
180. > void ASN1_put_object(unsigned char **pp, int constructed, int length, int tag,
181.   	     int xclass)
182.   	{

crypto/asn1/asn1_lib.c:180:1: Parameter `**pp`
    178.   /* class 0 is constructed
    179.    * constructed == 2 for indefinitle length constructed */
    180. > void ASN1_put_object(unsigned char **pp, int constructed, int length, int tag,
    181.   	     int xclass)
    182.   	{

crypto/asn1/asn1_lib.c:183:2: Assignment
    181.   	     int xclass)
    182.   	{
    183.   	unsigned char *p= *pp;
            ^
    184.   	int i;
    185.   

crypto/asn1/asn1_lib.c:192:5: Assignment
    190.   	else
    191.   		{
    192.   		*(p++)=i|V_ASN1_PRIMITIVE_TAG;
               ^
    193.   		while (tag > 0x7f)
    194.   			{

crypto/asn1/asn1_lib.c:198:3: Array access: Offset: [1, +oo] Size: [0, +oo] by call to `i2d_DSAparams` 
    196.   			tag>>=7;
    197.   			}
    198.   		*(p++)=(tag&0x7f);
             ^
    199.   		}
    200.   	if ((constructed == 2) && (length == 0))
