]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
CID:1214218 fix memory leak in conference_event_channel_handler
authorMichael Jerris <mike@jerris.com>
Thu, 15 May 2014 12:33:15 +0000 (12:33 +0000)
committerMichael Jerris <mike@jerris.com>
Thu, 15 May 2014 12:33:15 +0000 (12:33 +0000)
src/mod/applications/mod_conference/mod_conference.c

index 8efff9bd19540aaca90927d7289020a2340659f8..1683d56416e2f16fe67300b19b3dc07fb4448c7c 100644 (file)
@@ -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);
-       
 }