From 8b8d4021015cc333f26e6df9ab0cd2b82688b365 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Thu, 22 May 2014 16:03:38 +0200 Subject: [PATCH] IPTV: Fix the remaining memory leaks --- src/input/mpegts/iptv/iptv.c | 1 + src/input/mpegts/iptv/iptv_mux.c | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/input/mpegts/iptv/iptv.c b/src/input/mpegts/iptv/iptv.c index 094de3ad..986187bb 100644 --- a/src/input/mpegts/iptv/iptv.c +++ b/src/input/mpegts/iptv/iptv.c @@ -564,6 +564,7 @@ void iptv_done ( void ) tvhpoll_destroy(iptv_poll); pthread_mutex_lock(&global_lock); mpegts_network_unregister_builder(&iptv_network_class); + mpegts_network_class_delete(&iptv_network_class, 0); mpegts_input_stop_all((mpegts_input_t*)iptv_input); mpegts_input_delete((mpegts_input_t *)iptv_input, 0); pthread_mutex_unlock(&global_lock); diff --git a/src/input/mpegts/iptv/iptv_mux.c b/src/input/mpegts/iptv/iptv_mux.c index 6edda549..6732012d 100644 --- a/src/input/mpegts/iptv/iptv_mux.c +++ b/src/input/mpegts/iptv/iptv_mux.c @@ -74,10 +74,16 @@ iptv_mux_config_save ( mpegts_mux_t *mm ) static void iptv_mux_delete ( mpegts_mux_t *mm, int delconf ) { + iptv_mux_t *im = (iptv_mux_t*)mm; + if (delconf) hts_settings_remove("input/iptv/muxes/%s/config", idnode_uuid_as_str(&mm->mm_id)); + free(im->mm_iptv_url); + free(im->mm_iptv_interface); + free(im->mm_iptv_svcname); + mpegts_mux_delete(mm, delconf); } @@ -125,7 +131,7 @@ iptv_mux_create0 ( iptv_network_t *in, const char *uuid, htsmsg_t *conf ) (void)iptv_service_create0(im, 0, 0, f->hmf_name, e); } } - + htsmsg_destroy(c); return im; }