From 5802cb943aa52444811b27bd0563115dae0ef34a Mon Sep 17 00:00:00 2001 From: Mathieu Rene Date: Fri, 8 May 2009 04:33:58 +0000 Subject: [PATCH] Fix leak-on-failure git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13260 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/switch_xml.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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; } }