From: Anthony Minessale Date: Wed, 20 Aug 2008 19:10:04 +0000 (+0000) Subject: fix some mem leaks X-Git-Tag: v1.0.2~1406 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8d457eb09d79fbf4898564f1993274b8682fcc6;p=thirdparty%2Ffreeswitch.git fix some mem leaks git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9329 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- diff --git a/src/mod/event_handlers/mod_event_socket/mod_event_socket.c b/src/mod/event_handlers/mod_event_socket/mod_event_socket.c index 061ea46b86..9707257ca0 100644 --- a/src/mod/event_handlers/mod_event_socket/mod_event_socket.c +++ b/src/mod/event_handlers/mod_event_socket/mod_event_socket.c @@ -1115,7 +1115,7 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj) char reply[512] = ""; switch_core_session_t *session = NULL; switch_channel_t *channel = NULL; - + switch_event_t *revent = NULL; switch_mutex_lock(listen_list.mutex); prefs.threads++; @@ -1234,8 +1234,6 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj) } while (switch_test_flag(listener, LFLAG_RUNNING) && listen_list.ready) { - switch_event_t *revent; - len = sizeof(buf); memset(buf, 0, len); status = read_packet(listener, &revent, 0); @@ -1253,6 +1251,8 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj) break; } + switch_event_destroy(&revent); + if (*reply != '\0') { if (*reply == '~') { switch_snprintf(buf, sizeof(buf), "Content-Type: command/reply\n%s", reply + 1); @@ -1266,6 +1266,10 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj) } done: + + if (revent) { + switch_event_destroy(&revent); + } remove_listener(listener); diff --git a/src/switch_event.c b/src/switch_event.c index 600f34be61..12f6f88b82 100644 --- a/src/switch_event.c +++ b/src/switch_event.c @@ -1093,7 +1093,11 @@ SWITCH_DECLARE(switch_status_t) switch_event_unbind_callback(switch_event_callba EVENT_NODES[n->event_id] = n->next; } switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Event Binding deleted for %s:%s\n", n->id, switch_event_name(n->event_id)); - n->subclass = NULL; + if (n->subclass) { + FREE(n->subclass->owner); + FREE(n->subclass->name); + FREE(n->subclass); + } FREE(n->id); FREE(n); status = SWITCH_STATUS_SUCCESS;