crypto/asn1/x_cinf.c:173: error: MEMORY_LEAK
  memory dynamically allocated to `return` by call to `malloc()` at line 169, column 2 is not reachable after line 173, column 2.
Showing all 31 steps of the trace


crypto/asn1/x_cinf.c:164:1: start of procedure X509_CINF_new()
162.   	}
163.   
164. > X509_CINF *X509_CINF_new(void)
165.   	{
166.   	X509_CINF *ret=NULL;

crypto/asn1/x_cinf.c:166:2: 
164.   X509_CINF *X509_CINF_new(void)
165.   	{
166. > 	X509_CINF *ret=NULL;
167.   	ASN1_CTX c;
168.   

crypto/asn1/x_cinf.c:169:2: Taking false branch
167.   	ASN1_CTX c;
168.   
169.   	M_ASN1_New_Malloc(ret,X509_CINF);
        ^
170.   	ret->version=NULL;
171.   	M_ASN1_New(ret->serialNumber,ASN1_INTEGER_new);

crypto/asn1/x_cinf.c:170:2: 
168.   
169.   	M_ASN1_New_Malloc(ret,X509_CINF);
170. > 	ret->version=NULL;
171.   	M_ASN1_New(ret->serialNumber,ASN1_INTEGER_new);
172.   	M_ASN1_New(ret->signature,X509_ALGOR_new);

crypto/asn1/x_cinf.c:171:2: 
169.   	M_ASN1_New_Malloc(ret,X509_CINF);
170.   	ret->version=NULL;
171. > 	M_ASN1_New(ret->serialNumber,ASN1_INTEGER_new);
172.   	M_ASN1_New(ret->signature,X509_ALGOR_new);
173.   	M_ASN1_New(ret->issuer,X509_NAME_new);

crypto/asn1/asn1_lib.c:368:1: start of procedure ASN1_STRING_type_new()
  366.   
  367.   
  368. > ASN1_STRING *ASN1_STRING_type_new(int type)
  369.   	{
  370.   	ASN1_STRING *ret;

crypto/asn1/asn1_lib.c:372:2: 
  370.   	ASN1_STRING *ret;
  371.   
  372. > 	ret=(ASN1_STRING *)Malloc(sizeof(ASN1_STRING));
  373.   	if (ret == NULL)
  374.   		{

crypto/asn1/asn1_lib.c:373:6: Taking false branch
  371.   
  372.   	ret=(ASN1_STRING *)Malloc(sizeof(ASN1_STRING));
  373.   	if (ret == NULL)
              ^
  374.   		{
  375.   		ASN1err(ASN1_F_ASN1_STRING_TYPE_NEW,ERR_R_MALLOC_FAILURE);

crypto/asn1/asn1_lib.c:378:2: 
  376.   		return(NULL);
  377.   		}
  378. > 	ret->length=0;
  379.   	ret->type=type;
  380.   	ret->data=NULL;

crypto/asn1/asn1_lib.c:379:2: 
  377.   		}
  378.   	ret->length=0;
  379. > 	ret->type=type;
  380.   	ret->data=NULL;
  381.   	ret->flags=0;

crypto/asn1/asn1_lib.c:380:2: 
  378.   	ret->length=0;
  379.   	ret->type=type;
  380. > 	ret->data=NULL;
  381.   	ret->flags=0;
  382.   	return(ret);

crypto/asn1/asn1_lib.c:381:2: 
  379.   	ret->type=type;
  380.   	ret->data=NULL;
  381. > 	ret->flags=0;
  382.   	return(ret);
  383.   	}

crypto/asn1/asn1_lib.c:382:2: 
  380.   	ret->data=NULL;
  381.   	ret->flags=0;
  382. > 	return(ret);
  383.   	}
  384.   

crypto/asn1/asn1_lib.c:383:2: return from a call to ASN1_STRING_type_new
  381.   	ret->flags=0;
  382.   	return(ret);
  383.   	}
          ^
  384.   
  385.   void ASN1_STRING_free(ASN1_STRING *a)

crypto/asn1/x_cinf.c:171:2: Taking false branch
169.   	M_ASN1_New_Malloc(ret,X509_CINF);
170.   	ret->version=NULL;
171.   	M_ASN1_New(ret->serialNumber,ASN1_INTEGER_new);
        ^
172.   	M_ASN1_New(ret->signature,X509_ALGOR_new);
173.   	M_ASN1_New(ret->issuer,X509_NAME_new);

crypto/asn1/x_cinf.c:172:2: 
170.   	ret->version=NULL;
171.   	M_ASN1_New(ret->serialNumber,ASN1_INTEGER_new);
172. > 	M_ASN1_New(ret->signature,X509_ALGOR_new);
173.   	M_ASN1_New(ret->issuer,X509_NAME_new);
174.   	M_ASN1_New(ret->validity,X509_VAL_new);

crypto/asn1/x_algor.c:102:1: start of procedure X509_ALGOR_new()
  100.   	}
  101.   
  102. > X509_ALGOR *X509_ALGOR_new(void)
  103.   	{
  104.   	X509_ALGOR *ret=NULL;

crypto/asn1/x_algor.c:104:2: 
  102.   X509_ALGOR *X509_ALGOR_new(void)
  103.   	{
  104. > 	X509_ALGOR *ret=NULL;
  105.   	ASN1_CTX c;
  106.   

crypto/asn1/x_algor.c:107:2: Taking false branch
  105.   	ASN1_CTX c;
  106.   
  107.   	M_ASN1_New_Malloc(ret,X509_ALGOR);
          ^
  108.   	ret->algorithm=OBJ_nid2obj(NID_undef);
  109.   	ret->parameter=NULL;

crypto/asn1/x_algor.c:108:2: 
  106.   
  107.   	M_ASN1_New_Malloc(ret,X509_ALGOR);
  108. > 	ret->algorithm=OBJ_nid2obj(NID_undef);
  109.   	ret->parameter=NULL;
  110.   	return(ret);

crypto/objects/obj_dat.c:265:1: start of procedure OBJ_nid2obj()
    263.   	}
    264.   
    265. > ASN1_OBJECT *OBJ_nid2obj(int n)
    266.   	{
    267.   	ADDED_OBJ ad,*adp;

crypto/objects/obj_dat.c:270:7: Taking true branch
    268.   	ASN1_OBJECT ob;
    269.   
    270.   	if ((n >= 0) && (n < NUM_NID))
                 ^
    271.   		{
    272.   		if ((n != NID_undef) && (nid_objs[n].nid == NID_undef))

crypto/objects/obj_dat.c:270:19: Taking true branch
    268.   	ASN1_OBJECT ob;
    269.   
    270.   	if ((n >= 0) && (n < NUM_NID))
                             ^
    271.   		{
    272.   		if ((n != NID_undef) && (nid_objs[n].nid == NID_undef))

crypto/objects/obj_dat.c:272:8: Taking false branch
    270.   	if ((n >= 0) && (n < NUM_NID))
    271.   		{
    272.   		if ((n != NID_undef) && (nid_objs[n].nid == NID_undef))
                  ^
    273.   			{
    274.   			OBJerr(OBJ_F_OBJ_NID2OBJ,OBJ_R_UNKNOWN_NID);

crypto/objects/obj_dat.c:277:3: 
    275.   			return(NULL);
    276.   			}
    277. > 		return((ASN1_OBJECT *)&(nid_objs[n]));
    278.   		}
    279.   	else if (added == NULL)

crypto/objects/obj_dat.c:295:2: return from a call to OBJ_nid2obj
    293.   			}
    294.   		}
    295.   	}
            ^
    296.   
    297.   const char *OBJ_nid2sn(int n)

crypto/asn1/x_algor.c:109:2: 
  107.   	M_ASN1_New_Malloc(ret,X509_ALGOR);
  108.   	ret->algorithm=OBJ_nid2obj(NID_undef);
  109. > 	ret->parameter=NULL;
  110.   	return(ret);
  111.   	M_ASN1_New_Error(ASN1_F_X509_ALGOR_NEW);

crypto/asn1/x_algor.c:110:2: 
  108.   	ret->algorithm=OBJ_nid2obj(NID_undef);
  109.   	ret->parameter=NULL;
  110. > 	return(ret);
  111.   	M_ASN1_New_Error(ASN1_F_X509_ALGOR_NEW);
  112.   	}

crypto/asn1/x_algor.c:112:2: return from a call to X509_ALGOR_new
  110.   	return(ret);
  111.   	M_ASN1_New_Error(ASN1_F_X509_ALGOR_NEW);
  112.   	}
          ^
  113.   
  114.   void X509_ALGOR_free(X509_ALGOR *a)

crypto/asn1/x_cinf.c:172:2: Taking false branch
170.   	ret->version=NULL;
171.   	M_ASN1_New(ret->serialNumber,ASN1_INTEGER_new);
172.   	M_ASN1_New(ret->signature,X509_ALGOR_new);
        ^
173.   	M_ASN1_New(ret->issuer,X509_NAME_new);
174.   	M_ASN1_New(ret->validity,X509_VAL_new);

crypto/asn1/x_cinf.c:173:2: Taking true branch
171.   	M_ASN1_New(ret->serialNumber,ASN1_INTEGER_new);
172.   	M_ASN1_New(ret->signature,X509_ALGOR_new);
173.   	M_ASN1_New(ret->issuer,X509_NAME_new);
        ^
174.   	M_ASN1_New(ret->validity,X509_VAL_new);
175.   	M_ASN1_New(ret->subject,X509_NAME_new);
