handle some error cases.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6881 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Michael Jerris 2007-12-18 21:59:48 +00:00
parent 724e88adc8
commit 09e842f831
1 changed files with 15 additions and 3 deletions

View File

@ -431,9 +431,21 @@ static void switch_xml_char_content(switch_xml_root_t root, char *s, switch_size
if (!*(xml->txt)) if (!*(xml->txt))
xml->txt = s; // initial character content xml->txt = s; // initial character content
else { // allocate our own memory and make a copy else { // allocate our own memory and make a copy
xml->txt = (xml->flags & SWITCH_XML_TXTM) // allocate some space if ((xml->flags & SWITCH_XML_TXTM)) { // allocate some space
? (char *)realloc(xml->txt, (l = strlen(xml->txt)) + len) char *tmp = (char *)realloc(xml->txt, (l = strlen(xml->txt)) + len);
: strcpy((char *)malloc((l = strlen(xml->txt)) + len), xml->txt); if (tmp) {
xml->txt = tmp;
} else {
return;
}
} else {
char *tmp = (char *)malloc((l = strlen(xml->txt)) + len);
if (tmp) {
xml->txt = strcpy(tmp, xml->txt);
} else {
return;
}
}
strcpy(xml->txt + l, s); // add new char content strcpy(xml->txt + l, s); // add new char content
if (s != m) if (s != m)
free(s); // free s if it was malloced by switch_xml_decode() free(s); // free s if it was malloced by switch_xml_decode()