apps/rsa.c:277: error: BUFFER_OVERRUN_L3
  Offset added: [15, +oo] (⇐ [4, +oo] + 11) Size: [0, +oo] by call to `i2d_Netscape_RSA`.
Showing all 22 steps of the trace


apps/rsa.c:270:8: Call
268.   
269.   		i=1;
270.   		size=i2d_Netscape_RSA(rsa,NULL,NULL);
              ^
271.   		if ((p=(unsigned char *)Malloc(size)) == NULL)
272.   			{

crypto/asn1/n_pkey.c:104:2: Assignment
  102.   	X509_ALGOR *alg=NULL;
  103.   	ASN1_OCTET_STRING os,os2;
  104.   	M_ASN1_I2D_vars(a);
          ^
  105.   
  106.   	if (a == NULL) return(0);

apps/rsa.c:270:3: Assignment
268.   
269.   		i=1;
270.   		size=i2d_Netscape_RSA(rsa,NULL,NULL);
         ^
271.   		if ((p=(unsigned char *)Malloc(size)) == NULL)
272.   			{

apps/rsa.c:271:27: Array declaration
269.   		i=1;
270.   		size=i2d_Netscape_RSA(rsa,NULL,NULL);
271.   		if ((p=(unsigned char *)Malloc(size)) == NULL)
                                 ^
272.   			{
273.   			BIO_printf(bio_err,"Malloc failure\n");

apps/rsa.c:271:8: Assignment
269.   		i=1;
270.   		size=i2d_Netscape_RSA(rsa,NULL,NULL);
271.   		if ((p=(unsigned char *)Malloc(size)) == NULL)
              ^
272.   			{
273.   			BIO_printf(bio_err,"Malloc failure\n");

apps/rsa.c:277:3: Call
275.   			}
276.   		pp=p;
277.   		i2d_Netscape_RSA(rsa,&p,NULL);
         ^
278.   		BIO_write(out,(char *)pp,size);
279.   		Free(pp);

crypto/asn1/n_pkey.c:141:2: Assignment
  139.   	os.data=(unsigned char *)"private-key";
  140.   #endif
  141.   	os.length=11;
          ^
  142.   	l[4]=i2d_ASN1_OCTET_STRING(&os,NULL);
  143.   

crypto/asn1/n_pkey.c:191:2: Call
  189.   	p= *pp;
  190.   	ASN1_put_object(&p,1,l[4]+l[3],V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
  191.   	i2d_ASN1_OCTET_STRING(&os,&p);
          ^
  192.   	ASN1_put_object(&p,1,l[2]+l[1],V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
  193.   	i2d_X509_ALGOR(alg,&p);

crypto/asn1/a_octet.c:66:1: Parameter `**pp`
    64.    */
    65.   
    66. > int i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a, unsigned char **pp)
    67.   	{
    68.   	return(i2d_ASN1_bytes((ASN1_STRING *)a,pp,

crypto/asn1/a_octet.c:68:9: Call
    66.   int i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a, unsigned char **pp)
    67.   	{
    68.   	return(i2d_ASN1_bytes((ASN1_STRING *)a,pp,
                  ^
    69.   		V_ASN1_OCTET_STRING,V_ASN1_UNIVERSAL));
    70.   	}

crypto/asn1/a_bytes.c:150:1: <Offset trace>
148.   	}
149.   
150. > int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass)
151.   	{
152.   	int ret,r,constructed;

crypto/asn1/a_bytes.c:150:1: Parameter `a->length`
      148.   	}
      149.   
      150. > int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass)
      151.   	{
      152.   	int ret,r,constructed;

crypto/asn1/a_bytes.c:150:1: <Length trace>
148.   	}
149.   
150. > int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass)
151.   	{
152.   	int ret,r,constructed;

crypto/asn1/a_bytes.c:150:1: Parameter `**pp`
      148.   	}
      149.   
      150. > int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass)
      151.   	{
      152.   	int ret,r,constructed;

crypto/asn1/a_bytes.c:163:2: Assignment
      161.   	r=ASN1_object_size(0,ret,tag);
      162.   	if (pp == NULL) return(r);
      163.   	p= *pp;
              ^
      164.   
      165.   	if ((tag == V_ASN1_SEQUENCE) || (tag == V_ASN1_SET))

crypto/asn1/a_bytes.c:169:2: Call
      167.   	else
      168.   		constructed=0;
      169.   	ASN1_put_object(&p,constructed,ret,tag,xclass);
              ^
      170.   	memcpy(p,a->data,a->length);
      171.   	p+=a->length;

crypto/asn1/asn1_lib.c:186:1: Parameter `**pp`
        184.   /* class 0 is constructed
        185.    * constructed == 2 for indefinitle length constructed */
        186. > void ASN1_put_object(unsigned char **pp, int constructed, int length, int tag,
        187.   	     int xclass)
        188.   	{

crypto/asn1/asn1_lib.c:189:2: Assignment
        187.   	     int xclass)
        188.   	{
        189.   	unsigned char *p= *pp;
                ^
        190.   	int i;
        191.   

crypto/asn1/asn1_lib.c:195:5: Assignment
        193.   	i|=(xclass&V_ASN1_PRIVATE);
        194.   	if (tag < 31)
        195.   		*(p++)=i|(tag&V_ASN1_PRIMATIVE_TAG);
                   ^
        196.   	else
        197.   		{

crypto/asn1/asn1_lib.c:207:5: Assignment
        205.   		}
        206.   	if ((constructed == 2) && (length == 0))
        207.   		*(p++)=0x80; /* der_put_length would output 0 instead */
                   ^
        208.   	else
        209.   		asn1_put_length(&p,length);

crypto/asn1/asn1_lib.c:210:2: Assignment
        208.   	else
        209.   		asn1_put_length(&p,length);
        210.   	*pp=p;
                ^
        211.   	}
        212.   

crypto/asn1/a_bytes.c:170:2: Array access: Offset added: [15, +oo] (⇐ [4, +oo] + 11) Size: [0, +oo] by call to `i2d_Netscape_RSA` 
      168.   		constructed=0;
      169.   	ASN1_put_object(&p,constructed,ret,tag,xclass);
      170.   	memcpy(p,a->data,a->length);
              ^
      171.   	p+=a->length;
      172.   	*pp= p;
