From: Mathieu Rene Date: Fri, 8 May 2009 04:33:58 +0000 (+0000) Subject: Fix leak-on-failure X-Git-Tag: v1.0.4~942 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5802cb943aa52444811b27bd0563115dae0ef34a;p=thirdparty%2Ffreeswitch.git Fix leak-on-failure git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13260 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- diff --git a/src/switch_xml.c b/src/switch_xml.c index 6bd0b2d254..eccaa630a6 100644 --- a/src/switch_xml.c +++ b/src/switch_xml.c @@ -905,12 +905,18 @@ static void switch_xml_free_attr(char **attr) SWITCH_DECLARE(switch_xml_t) switch_xml_parse_str_dynamic(char *s, switch_bool_t dup) { switch_xml_root_t root; - char *data = dup ? strdup(s) : s; + char *data; + + switch_assert(s); + data = dup ? strdup(s) : s; if ((root = (switch_xml_root_t) switch_xml_parse_str(data, strlen(data)))) { root->dynamic = 1; /* Make sure we free the memory is switch_xml_free() */ return &root->xml; } else { + if (dup) { + free(data); + } return NULL; } }