]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
descrambler: fix the double free
authorJaroslav Kysela <perex@perex.cz>
Fri, 7 Sep 2018 17:57:16 +0000 (19:57 +0200)
committerJaroslav Kysela <perex@perex.cz>
Fri, 7 Sep 2018 17:57:16 +0000 (19:57 +0200)
src/descrambler/descrambler.c

index f6ea0fe6a78dd58501215fde6c1cf266fb1a56da..d0ff84f3234d28046722e882b9fb6a60cfdf2e99 100644 (file)
@@ -468,6 +468,7 @@ static void
 descrambler_notify_deliver( mpegts_service_t *t, descramble_info_t *di )
 {
   streaming_message_t *sm;
+  struct descramble_info *di2;
   int r;
 
   lock_assert(&t->s_stream_mutex);
@@ -480,7 +481,9 @@ descrambler_notify_deliver( mpegts_service_t *t, descramble_info_t *di )
   }
   memcpy(t->s_descramble_info, di, sizeof(*di));
 
-  sm = streaming_msg_create(SMT_DESCRAMBLE_INFO);
+  di2 = malloc(sizeof(*di2));
+  memcpy(di2, di, sizeof(*di2));
+  sm = streaming_msg_create_data(SMT_DESCRAMBLE_INFO, di2);
   sm->sm_data = di;
 
   streaming_service_deliver((service_t *)t, sm);