Module: libav Branch: master Commit: cf402d6fa88acd647cdff993429583bec8a34fdc
Author: Martin Storsjö <[email protected]> Committer: Martin Storsjö <[email protected]> Date: Mon Mar 9 23:14:19 2015 +0200 rtpenc_mpegts: Set chain->rtp_ctx only after avformat_write_header succeeded By making sure we at each time only have one pointer set, either a local variable or one in the context, we avoid potential double frees in the cleanup routines. If chain->rtp_ctx is set, it is closed by calling avformat_write_trailer, but that shouldn't be called unless avformat_write_header succeeded. This issue was pointed out by Andreas Cadhalpun. Signed-off-by: Martin Storsjö <[email protected]> --- libavformat/rtpenc_mpegts.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/rtpenc_mpegts.c b/libavformat/rtpenc_mpegts.c index 8ced6a9..585d1ad 100644 --- a/libavformat/rtpenc_mpegts.c +++ b/libavformat/rtpenc_mpegts.c @@ -88,11 +88,10 @@ static int rtp_mpegts_write_header(AVFormatContext *s) st->time_base.num = 1; st->time_base.den = 90000; st->codec->codec_id = AV_CODEC_ID_MPEG2TS; - chain->rtp_ctx = rtp_ctx; rtp_ctx->pb = s->pb; if ((ret = avformat_write_header(rtp_ctx, NULL)) < 0) goto fail; - rtp_ctx = NULL; + chain->rtp_ctx = rtp_ctx; return 0; _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
