]> 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:18 +0000 (09:22 +0100)
src/muxer/muxer_libav.c

index 725a9c8a1aa83959aec0bbc38955c4931cc00cde..76aefe566b0a7c9f4964ad9cffa6ab054edc5260 100644 (file)
@@ -401,6 +401,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);
 
@@ -566,8 +567,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;
 }