From: Michael Jerris Date: Thu, 15 May 2014 12:33:15 +0000 (+0000) Subject: CID:1214218 fix memory leak in conference_event_channel_handler X-Git-Tag: v1.4.4~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19f3ab5182fda0ad66df50baabab562d27612e01;p=thirdparty%2Ffreeswitch.git CID:1214218 fix memory leak in conference_event_channel_handler --- 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); - }