Browse Source

presence_xml: better error handling to free all allocated vars

Daniel-Constantin Mierla 10 years ago
parent
commit
2d40e14d2b
1 changed files with 3 additions and 2 deletions
  1. 3 2
      modules/presence_xml/pres_check.c

+ 3 - 2
modules/presence_xml/pres_check.c

@@ -140,7 +140,7 @@ int presxml_check_activities(struct sip_msg *msg, str presentity_uri, str activi
 	if (presentity == NULL || presentity->len <= 0 || presentity->s == NULL)
 	{
 		LM_DBG("cannot get presentity for %.*s\n", presentity_uri.len, presentity_uri.s);
-		return -1;
+		goto error;
 	}
 
 	if ((xmlDoc = xmlParseMemory(presentity->s, presentity->len)) == NULL)
@@ -192,6 +192,7 @@ error:
 		pkg_free(nodeName);
 	if (xmlDoc != NULL)
 		xmlFreeDoc(xmlDoc);
-	pres_free_presentity(presentity, ev);
+	if(presentity != NULL)
+		pres_free_presentity(presentity, ev);
 	return retval;
 }