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;