[Freeswitch-svn] [commit] r13398 - freeswitch/trunk/src

FreeSWITCH SVN mikej at freeswitch.org
Tue May 19 14:25:52 PDT 2009


Author: mikej
Date: Tue May 19 16:25:52 2009
New Revision: 13398

Log:
core: fix segfault on out of memory situation.  (FSCORE-366)

Modified:
   freeswitch/trunk/src/switch_xml.c

Modified: freeswitch/trunk/src/switch_xml.c
==============================================================================
--- freeswitch/trunk/src/switch_xml.c	(original)
+++ freeswitch/trunk/src/switch_xml.c	Tue May 19 16:25:52 2009
@@ -2316,8 +2316,9 @@
 	static const char *ent[] = { "lt;", "<", "gt;", ">", "quot;", """,
 		"apos;", "'", "amp;", "&", NULL
 	};
-	switch_xml_root_t root = (switch_xml_root_t) memset(malloc(sizeof(struct switch_xml_root)),
-														'\0', sizeof(struct switch_xml_root));
+	switch_xml_root_t root = (switch_xml_root_t) malloc(sizeof(struct switch_xml_root));
+	if (!root) return NULL;
+	memset(root, '\0', sizeof(struct switch_xml_root));
 	root->xml.name = (char *) name;
 	root->cur = &root->xml;
 	strcpy(root->err, root->xml.txt = (char *)"");
@@ -2372,9 +2373,9 @@
 {
 	switch_xml_t child;
 
-	if (!xml)
-		return NULL;
-	child = (switch_xml_t) memset(malloc(sizeof(struct switch_xml)), '\0', sizeof(struct switch_xml));
+	if (!xml) return NULL;
+	if (!(child = (switch_xml_t) malloc(sizeof(struct switch_xml)))) return NULL;
+	memset(child, '\0', sizeof(struct switch_xml));
 	child->name = (char *) name;
 	child->attr = SWITCH_XML_NIL;
 	child->off = off;



More information about the Freeswitch-svn mailing list