From d2574262a538748a24ca2debecec33d8fe31df60 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Sat, 21 Mar 2020 18:31:06 +0100 Subject: [PATCH] avformat/paf: Simplify cleanup after read_header failure by setting the FF_FMT_INIT_CLEANUP flag. Signed-off-by: Andreas Rheinhardt --- libavformat/paf.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/libavformat/paf.c b/libavformat/paf.c index f48b2e60cd..2d2d7f8dd8 100644 --- a/libavformat/paf.c +++ b/libavformat/paf.c @@ -172,22 +172,20 @@ static int read_header(AVFormatContext *s) !p->blocks_offset_table || !p->video_frame || !p->audio_frame || - !p->temp_audio_frame) { - ret = AVERROR(ENOMEM); - goto fail; - } + !p->temp_audio_frame) + return AVERROR(ENOMEM); avio_seek(pb, p->buffer_size, SEEK_SET); ret = read_table(s, p->blocks_count_table, p->nb_frames); if (ret < 0) - goto fail; + return ret; ret = read_table(s, p->frames_offset_table, p->nb_frames); if (ret < 0) - goto fail; + return ret; ret = read_table(s, p->blocks_offset_table, p->frame_blks); if (ret < 0) - goto fail; + return ret; p->got_audio = 0; p->current_frame = 0; @@ -196,11 +194,6 @@ static int read_header(AVFormatContext *s) avio_seek(pb, p->start_offset, SEEK_SET); return 0; - -fail: - read_close(s); - - return ret; } static int read_packet(AVFormatContext *s, AVPacket *pkt) @@ -275,6 +268,7 @@ const AVInputFormat ff_paf_demuxer = { .name = "paf", .long_name = NULL_IF_CONFIG_SMALL("Amazing Studio Packed Animation File"), .priv_data_size = sizeof(PAFDemuxContext), + .flags_internal = FF_FMT_INIT_CLEANUP, .read_probe = read_probe, .read_header = read_header, .read_packet = read_packet,