]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
libav muxer: fix the close sequence for live file descriptors, issue #4704, fixes...
authorJaroslav Kysela <perex@perex.cz>
Wed, 8 Nov 2017 08:22:18 +0000 (09:22 +0100)
committerJaroslav Kysela <perex@perex.cz>
Wed, 8 Nov 2017 08:22:27 +0000 (09:22 +0100)
src/muxer/muxer_libav.c

index 34265cb80975b067c6e20e6f17989d8c2d820bfe..653f83282db22dd581b03e95699654a5e6be6aac 100644 (file)
@@ -399,6 +399,7 @@ lav_muxer_open_file(muxer_t *m, const char *filename)
   char buf[256];
   int r;
 
+  lm->lm_fd = -1;
   oc = lm->lm_oc;
   snprintf(oc->filename, sizeof(oc->filename), "%s", filename);
 
@@ -561,8 +562,13 @@ lav_muxer_close(muxer_t *m)
   }
 
   oc = lm->lm_oc;
-  avio_close(oc->pb);
-  oc->pb=NULL;
+  if (lm->lm_fd >= 0) {
+    av_freep(&oc->pb->buffer);
+    avio_context_free(&oc->pb);
+    lm->lm_fd = -1;
+  } else {
+    avio_closep(&oc->pb);
+  }
 
   return ret;
 }