PR #23487 opened by Zhao Zhili (quink) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23487 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23487.patch
# Summary of changes Fix memleak on error paths. <!-- If this PR requires new FATE test samples, attach them to the PR and list their target paths below (relative to the fate-suite root). Attached filenames must match the sample's filename: ```fate-samples # e.g. vorbis/new-sample.ogg ``` --> >From 7b671729f8a0eb96737ac45664f839459a74f8f2 Mon Sep 17 00:00:00 2001 From: Zhao Zhili <[email protected]> Date: Mon, 15 Jun 2026 22:23:45 +0800 Subject: [PATCH] avformat/mov_chan: free temporary layout on error paths --- libavformat/mov_chan.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/libavformat/mov_chan.c b/libavformat/mov_chan.c index cdf5e88ea1..8274e62f3d 100644 --- a/libavformat/mov_chan.c +++ b/libavformat/mov_chan.c @@ -402,8 +402,10 @@ static int mov_get_channel_layout(AVChannelLayout *ch_layout, uint32_t tag, uint } ret = av_channel_layout_retype(&tmp, 0, AV_CHANNEL_LAYOUT_RETYPE_FLAG_CANONICAL); - if (ret < 0) + if (ret < 0) { + av_channel_layout_uninit(&tmp); return ret; + } av_channel_layout_uninit(ch_layout); *ch_layout = tmp; @@ -596,6 +598,7 @@ int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, AVStream *st, if (pb->eof_reached) { av_log(s, AV_LOG_ERROR, "reached EOF while reading channel layout\n"); + av_channel_layout_uninit(&tmp); return AVERROR_INVALIDDATA; } label = avio_rb32(pb); // mChannelLabel @@ -608,8 +611,10 @@ int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, AVStream *st, } ret = av_channel_layout_retype(&tmp, 0, AV_CHANNEL_LAYOUT_RETYPE_FLAG_CANONICAL); - if (ret < 0) + if (ret < 0) { + av_channel_layout_uninit(&tmp); goto out; + } av_channel_layout_uninit(ch_layout); *ch_layout = tmp; @@ -813,8 +818,10 @@ int ff_mov_read_chnl(AVFormatContext *s, AVIOContext *pb, AVStream *st, int vers } ret = av_channel_layout_retype(&tmp, 0, AV_CHANNEL_LAYOUT_RETYPE_FLAG_CANONICAL); - if (ret < 0) + if (ret < 0) { + av_channel_layout_uninit(&tmp); return ret; + } av_channel_layout_uninit(ch_layout); *ch_layout = tmp; } else { -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
