apps/s_client.c:423: error: BUFFER_OVERRUN_L3
  Offset: [1, +oo] Size: [0, +oo] by call to `print_stuff`.
Showing all 25 steps of the trace


apps/s_client.c:334:7: Call
332.   
333.   	SSL_CTX_set_verify(ctx,verify,verify_callback);
334.   	if (!set_cert_stuff(ctx,cert_file,key_file))
             ^
335.   		goto end;
336.   

apps/s_cb.c:133:7: Call
  131.   		*/
  132.   
  133.   		if (SSL_CTX_use_certificate_file(ctx,cert_file,
               ^
  134.   			SSL_FILETYPE_PEM) <= 0)
  135.   			{

ssl/ssl_rsa.c:497:1: Parameter `*ctx->cert->pkeys[*].x509->signature->data`
    495.   
    496.   #ifndef NO_STDIO
    497. > int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type)
    498.   	{
    499.   	int j;

apps/s_client.c:347:13: Call
345.   	SSL_load_error_strings();
346.   
347.   	con=(SSL *)SSL_new(ctx);
                   ^
348.   /*	SSL_set_cipher_list(con,"RC4-MD5"); */
349.   

ssl/ssl_lib.c:162:1: Parameter `*ctx->cert->pkeys[*].x509->signature->data`
  160.   	}
  161.   
  162. > SSL *SSL_new(SSL_CTX *ctx)
  163.   	{
  164.   	SSL *s;

apps/s_client.c:423:5: Call
421.   				{
422.   				in_init=0;
423.   				print_stuff(bio_c_out,con,full_log);
           ^
424.   				if (full_log > 0) full_log--;
425.   

apps/s_client.c:656:1: Parameter `*s->session->peer->cert_info->key->public_key->data`
  654.   
  655.   
  656. > static void print_stuff(BIO *bio, SSL *s, int full)
  657.   	{
  658.   	X509 *peer=NULL;

apps/s_client.c:760:11: Call
  758.   	if (peer != NULL) {
  759.   		EVP_PKEY *pktmp;
  760.   		pktmp = X509_get_pubkey(peer);
                   ^
  761.   		BIO_printf(bio,"Server public key is %d bit\n",
  762.   							 EVP_PKEY_bits(pktmp));

crypto/x509/x509_cmp.c:239:1: Parameter `*x->cert_info->key->public_key->data`
    237.   	}
    238.   
    239. > EVP_PKEY *X509_get_pubkey(X509 *x)
    240.   	{
    241.   	if ((x == NULL) || (x->cert_info == NULL))

crypto/x509/x509_cmp.c:243:9: Call
    241.   	if ((x == NULL) || (x->cert_info == NULL))
    242.   		return(NULL);
    243.   	return(X509_PUBKEY_get(x->cert_info->key));
                   ^
    244.   	}
    245.   

crypto/asn1/x_pubkey.c:200:1: Parameter `*key->public_key->data`
      198.   	}
      199.   
      200. > EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key)
      201.   	{
      202.   	EVP_PKEY *ret=NULL;

crypto/asn1/x_pubkey.c:221:2: Assignment
      219.   
      220.   	type=OBJ_obj2nid(key->algor->algorithm);
      221.   	p=key->public_key->data;
              ^
      222.           j=key->public_key->length;
      223.           if ((ret=d2i_PublicKey(type,NULL,&p,(long)j)) == NULL)

crypto/asn1/x_pubkey.c:223:18: Call
      221.   	p=key->public_key->data;
      222.           j=key->public_key->length;
      223.           if ((ret=d2i_PublicKey(type,NULL,&p,(long)j)) == NULL)
                              ^
      224.   		{
      225.   		X509err(X509_F_X509_PUBKEY_GET,X509_R_ERR_ASN1_LIB);

crypto/asn1/d2i_pu.c:66:1: Parameter `**pp`
        64.   #include <openssl/x509.h>
        65.   
        66. > EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, unsigned char **pp,
        67.   	     long length)
        68.   	{

crypto/asn1/d2i_pu.c:87:22: Call
        85.   #ifndef NO_RSA
        86.   	case EVP_PKEY_RSA:
        87.   		if ((ret->pkey.rsa=d2i_RSAPublicKey(NULL,pp,length)) == NULL)
                                   ^
        88.   			{
        89.   			ASN1err(ASN1_F_D2I_PUBLICKEY,ERR_R_ASN1_LIB);

crypto/asn1/d2i_r_pu.c:67:1: Parameter `**pp`
          65.   #include <openssl/asn1_mac.h>
          66.   
          67. > RSA *d2i_RSAPublicKey(RSA **a, unsigned char **pp, long length)
          68.   	{
          69.   	int i=ASN1_R_PARSING;

crypto/asn1/d2i_r_pu.c:73:2: Assignment
          71.   	M_ASN1_D2I_vars(a,RSA *,RSA_new);
          72.   
          73.   	M_ASN1_D2I_Init();
                 ^
          74.   	M_ASN1_D2I_start_sequence();
          75.   	M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);

crypto/asn1/d2i_r_pu.c:74:2: Call
          72.   
          73.   	M_ASN1_D2I_Init();
          74.   	M_ASN1_D2I_start_sequence();
                 ^
          75.   	M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
          76.   	if ((ret->n=BN_bin2bn(bs->data,bs->length,ret->n)) == NULL) goto err_bn;

crypto/asn1/asn1_lib.c:277:1: Parameter `*c->p`
            275.   	}
            276.   
            277. > int asn1_GetSequence(ASN1_CTX *c, long *length)
            278.   	{
            279.   	unsigned char *q;

crypto/asn1/asn1_lib.c:282:9: Call
            280.   
            281.   	q=c->p;
            282.   	c->inf=ASN1_get_object(&(c->p),&(c->slen),&(c->tag),&(c->xclass),
                           ^
            283.   		*length);
            284.   	if (c->inf & 0x80)

crypto/asn1/asn1_lib.c:83:1: <Length trace>
81.   
82.   
83. > int ASN1_get_object(unsigned char **pp, long *plength, int *ptag, int *pclass,
84.   	     long omax)
85.   	{

crypto/asn1/asn1_lib.c:83:1: Parameter `**pp`
              81.   
              82.   
              83. > int ASN1_get_object(unsigned char **pp, long *plength, int *ptag, int *pclass,
              84.   	     long omax)
              85.   	{

crypto/asn1/asn1_lib.c:88:2: Assignment
              86.   	int i,ret;
              87.   	long l;
              88.   	unsigned char *p= *pp;
                     ^
              89.   	int tag,xclass,inf;
              90.   	long max=omax;

crypto/asn1/asn1_lib.c:98:3: Assignment
              96.   	if (i == V_ASN1_PRIMATIVE_TAG)
              97.   		{		/* high-tag */
              98.   		p++;
                       ^
              99.   		if (--max == 0) goto err;
              100.   		l=0;

crypto/asn1/asn1_lib.c:101:10: Array access: Offset: [1, +oo] Size: [0, +oo] by call to `print_stuff` 
              99.   		if (--max == 0) goto err;
              100.   		l=0;
              101.   		while (*p&0x80)
                              ^
              102.   			{
              103.   			l<<=7L;
