From: Jaroslav Kysela Date: Wed, 8 Nov 2017 08:22:18 +0000 (+0100) Subject: libav muxer: fix the close sequence for live file descriptors, issue #4704, fixes... X-Git-Tag: v4.2.5~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=383b274b20de59583a415ff480804f07df4e78b9;p=thirdparty%2Ftvheadend.git libav muxer: fix the close sequence for live file descriptors, issue #4704, fixes #4712 --- diff --git a/src/muxer/muxer_libav.c b/src/muxer/muxer_libav.c index 34265cb80..653f83282 100644 --- a/src/muxer/muxer_libav.c +++ b/src/muxer/muxer_libav.c @@ -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; }