From 19f3ab5182fda0ad66df50baabab562d27612e01 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Thu, 15 May 2014 12:33:15 +0000 Subject: [PATCH] CID:1214218 fix memory leak in conference_event_channel_handler --- src/mod/applications/mod_conference/mod_conference.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index 8efff9bd19..1683d56416 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -1302,7 +1302,8 @@ static void conference_event_channel_handler(const char *event_channel, cJSON *j conference_obj_t *conference = NULL; cJSON *data, *reply = NULL, *conf_desc = NULL; const char *action = NULL; - + char *dup = NULL; + if ((data = cJSON_GetObjectItem(json, "data"))) { action = cJSON_GetObjectCstr(data, "action"); } @@ -1313,9 +1314,9 @@ static void conference_event_channel_handler(const char *event_channel, cJSON *j cJSON_DeleteItemFromObject(reply, "data"); if ((name = strchr(event_channel, '.'))) { - char *tmp = strdup(name + 1); - switch_assert(tmp); - name = tmp; + dup = strdup(name + 1); + switch_assert(dup); + name = dup; if ((domain = strchr(name, '@'))) { *domain++ = '\0'; @@ -1341,8 +1342,9 @@ static void conference_event_channel_handler(const char *event_channel, cJSON *j cJSON_AddItemToObject(reply, "data", conf_desc); + switch_safe_free(dup); + switch_event_channel_broadcast(event_channel, &reply, modname, globals.event_channel_id); - }