From 86a134481dfb09448febbf2afabb18094de0a16b Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Thu, 8 May 2014 22:41:44 +0200 Subject: [PATCH] Fix the memory leak in the udp multirecv --- src/tvheadend.h | 2 +- src/udp.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/tvheadend.h b/src/tvheadend.h index 9076710c..91b0d831 100644 --- a/src/tvheadend.h +++ b/src/tvheadend.h @@ -102,7 +102,7 @@ typedef struct source_info { static inline void lock_assert0(pthread_mutex_t *l, const char *file, int line) { -#if ENABLE_LOCKOWNER +#if 0 && ENABLE_LOCKOWNER assert(l->__data.__owner == syscall(SYS_gettid)); #else if(pthread_mutex_trylock(l) == EBUSY) diff --git a/src/udp.c b/src/udp.c index 35ec2fcf..aeaaad52 100644 --- a/src/udp.c +++ b/src/udp.c @@ -461,9 +461,10 @@ udp_multirecv_init( udp_multirecv_t *um, int packets, int psize ) void udp_multirecv_free( udp_multirecv_t *um ) { - free(um->um_msg); um->um_msg = NULL; - free(um->um_iovec); um->um_iovec = NULL; - free(um->um_data); um->um_data = NULL; + free(um->um_msg); um->um_msg = NULL; + free(um->um_riovec); um->um_riovec = NULL; + free(um->um_iovec); um->um_iovec = NULL; + free(um->um_data); um->um_data = NULL; um->um_psize = 0; um->um_packets = 0; }