Author: mikej Date: Tue Dec 18 16:37:28 2007 New Revision: 6879 Modified: freeswitch/trunk/src/switch_xml.cpp Log: handle some error cases. Modified: freeswitch/trunk/src/switch_xml.cpp ============================================================================== --- freeswitch/trunk/src/switch_xml.cpp (original) +++ freeswitch/trunk/src/switch_xml.cpp Tue Dec 18 16:37:28 2007 @@ -356,7 +356,25 @@ if (ent[b++]) { // found a match if ((c = (long) strlen(ent[b])) - 1 > (e = strchr(s, ';')) - s) { l = (d = (long) (s - r)) + c + (long) strlen(e); // new length - r = (r == m) ? strcpy((char *)malloc(l), r) : (char *)realloc(r, l); + if (l) { + if (r == m) { + char *tmp = (char *)malloc(l); + if (tmp) { + r = strcpy(tmp, r); + } else { + if (r) free(r); + return NULL; + } + } else { + char *tmp = (char *)realloc(r, l); + if (tmp) { + r = tmp; + } else { + if (r) free(r); + return NULL; + } + } + } e = strchr((s = r + d), ';'); // fix up pointers }
participants (1)
-
Freeswitch SVN