[Freeswitch-svn] [commit] r14031 - freeswitch/trunk/contrib/ledr/mod_xml_odbc
FreeSWITCH SVN
ledr at freeswitch.org
Mon Jun 29 11:01:47 PDT 2009
Author: ledr
Date: Mon Jun 29 13:01:46 2009
New Revision: 14031
Log:
Got rid of some memory leaks, main leak left is strdup to switch_xml_t name
Modified:
freeswitch/trunk/contrib/ledr/mod_xml_odbc/mod_xml_odbc.c
Modified: freeswitch/trunk/contrib/ledr/mod_xml_odbc/mod_xml_odbc.c
==============================================================================
--- freeswitch/trunk/contrib/ledr/mod_xml_odbc/mod_xml_odbc.c (original)
+++ freeswitch/trunk/contrib/ledr/mod_xml_odbc/mod_xml_odbc.c Mon Jun 29 13:01:46 2009
@@ -271,6 +271,11 @@
char *tmp_attr;
tmp_attr = switch_event_expand_headers(params, xml_in->attr[i+1]);
switch_xml_set_attr(xml_out, xml_in->attr[i], tmp_attr);
+
+ if (tmp_attr != xml_in->attr[i+1]) {
+ switch_safe_free(tmp_attr);
+ }
+
}
/* copy all children and render them */
@@ -285,13 +290,11 @@
status = SWITCH_STATUS_SUCCESS;
done:
-/* what must I free here : */
-// switch_xml_free(xml_in_tmp);
-// switch_safe_free(name);
-// switch_safe_free(value);
-// switch_safe_free(new_value);
-// switch_safe_free(empty_result_break_to);
-// switch_safe_free(no_template_break_to);
+
+ if (value != new_value) {
+ switch_safe_free(new_value);
+ }
+
return status;
}
@@ -377,7 +380,9 @@
}
if (debug == SWITCH_TRUE) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Debug dump of XML generated:\n%s", switch_xml_toxml(xml_out, SWITCH_FALSE));
+ char *tmp_xml = switch_xml_toxml(xml_out, SWITCH_FALSE);
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Debug dump of XML generated:\n%s", tmp_xml);
+ switch_safe_free(tmp_xml);
}
ret = 0;
@@ -573,6 +578,8 @@
switch_odbc_handle_disconnect(globals.master_odbc);
switch_odbc_handle_destroy(&globals.master_odbc);
+ switch_xml_unbind_search_function_ptr(xml_odbc_search);
+
return SWITCH_STATUS_SUCCESS;
}
More information about the Freeswitch-svn
mailing list