]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
[mod_xml_curl] Fix leaking event in xml_url_fetch() 1936/head
authorAndrey Volk <andywolk@gmail.com>
Tue, 24 Jan 2023 11:14:27 +0000 (14:14 +0300)
committerAndrey Volk <andywolk@gmail.com>
Tue, 24 Jan 2023 11:14:27 +0000 (14:14 +0300)
src/mod/xml_int/mod_xml_curl/mod_xml_curl.c

index 5a2e201a72c961130d82266cdbef252577f62653..6a8f2aac53922aa42b41616982d124a83a53c43f 100644 (file)
@@ -141,6 +141,7 @@ static size_t file_callback(void *ptr, size_t size, size_t nmemb, void *data)
 static switch_xml_t xml_url_fetch(const char *section, const char *tag_name, const char *key_name, const char *key_value, switch_event_t *params,
                                                                  void *user_data)
 {
+       switch_event_t *my_params = NULL;
        char filename[512] = "";
        switch_CURL *curl_handle = NULL;
        switch_CURLcode cc;
@@ -185,6 +186,7 @@ static switch_xml_t xml_url_fetch(const char *section, const char *tag_name, con
                if (!params) {
                        switch_event_create(&params, SWITCH_EVENT_REQUEST_PARAMS);
                        switch_assert(params);
+                       my_params = params;
                }
 
                switch_event_add_header_string(params, SWITCH_STACK_TOP, "hostname", hostname);
@@ -333,6 +335,11 @@ static switch_xml_t xml_url_fetch(const char *section, const char *tag_name, con
                switch_safe_free(uri);
        if (binding->use_dynamic_url && dynamic_url != binding->url)
                switch_safe_free(dynamic_url);
+
+       if (my_params) {
+               switch_event_destroy(&my_params);
+       }
+
        return xml;
 }