From 1a4e0eb3745488e9756495357c6829ecdc45b076 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Sat, 2 Mar 2024 16:41:31 +0100 Subject: [PATCH] avformat/dvdvideodec: Reorder allocations to simplify freeing Reviewed-by: Marth64 Signed-off-by: Andreas Rheinhardt --- libavformat/dvdvideodec.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/libavformat/dvdvideodec.c b/libavformat/dvdvideodec.c index f2f23affb2..7f4ecf2b61 100644 --- a/libavformat/dvdvideodec.c +++ b/libavformat/dvdvideodec.c @@ -1211,20 +1211,16 @@ static int dvdvideo_subdemux_open(AVFormatContext *s) extern const AVInputFormat ff_mpegps_demuxer; int ret = 0; - if (!(c->mpeg_ctx = avformat_alloc_context())) + if (!(c->mpeg_buf = av_mallocz(DVDVIDEO_BLOCK_SIZE))) return AVERROR(ENOMEM); - if (!(c->mpeg_buf = av_mallocz(DVDVIDEO_BLOCK_SIZE))) { - avformat_free_context(c->mpeg_ctx); - c->mpeg_ctx = NULL; - - return AVERROR(ENOMEM); - } - ffio_init_context(&c->mpeg_pb, c->mpeg_buf, DVDVIDEO_BLOCK_SIZE, 0, s, dvdvideo_subdemux_read_data, NULL, NULL); c->mpeg_pb.pub.seekable = 0; + if (!(c->mpeg_ctx = avformat_alloc_context())) + return AVERROR(ENOMEM); + if ((ret = ff_copy_whiteblacklists(c->mpeg_ctx, s)) < 0) { avformat_free_context(c->mpeg_ctx); c->mpeg_ctx = NULL;