]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Fix memleaks in descrambler and utils
authorKyle Sanderson <kyle.leet@gmail.com>
Sat, 27 Jun 2015 01:37:47 +0000 (18:37 -0700)
committerJaroslav Kysela <perex@perex.cz>
Sat, 27 Jun 2015 10:14:49 +0000 (12:14 +0200)
src/descrambler/descrambler.c
src/utils.c

index 6f6e3c5229ad5e3d6d0eb190141f16749b38e105..c0fa6a8f6213a0c0a417199cc97261840fe352d8 100644 (file)
@@ -217,8 +217,10 @@ fin:
     uint16_t sid = ((mpegts_service_t *)td->td_service)->s_dvb_service_id;
     uint32_t pos = 0, crc;
     mpegts_mux_t *mm = ((mpegts_service_t *)td->td_service)->s_dvb_mux;
-    if (!mm->mm_active)
+    if (!mm->mm_active) {
+      free(tp);
       return;
+       }
     pthread_mutex_lock(&mm->mm_active->mmi_input->mi_output_lock);
     tp->pos = mm->mm_tsdebug_pos;
     memset(tp->pkt, 0xff, sizeof(tp->pkt));
index 8bea6ff05b171d6c70655c55a66d79ac2318c685..554717bea9affb0006b9d8ab498a7dc8128f2d76 100644 (file)
@@ -714,8 +714,10 @@ deferred_unlink(const char *filename, const char *rootdir)
     tasklet_arm_alloc(deferred_unlink_cb, s);
   else {
     du = calloc(1, sizeof(*du));
-    if (du == NULL)
+    if (du == NULL) {
+      free(s);
       return -ENOMEM;
+    }
     du->filename = s;
     du->rootdir = strdup(rootdir);
     tasklet_arm_alloc(deferred_unlink_dir_cb, du);