PR #20877 opened by toots URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20877 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20877.patch
>From 389a1df1e310c7a76f857137d321d455271d5719 Mon Sep 17 00:00:00 2001 From: Romain Beauxis <[email protected]> Date: Sun, 9 Nov 2025 12:49:32 -0600 Subject: [PATCH] Handle errors in ogg reinit, make sure we free private data before new init. --- libavformat/oggenc.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c index 5cd94b49bc..080af2295f 100644 --- a/libavformat/oggenc.c +++ b/libavformat/oggenc.c @@ -649,16 +649,27 @@ static int ogg_write_packet_internal(AVFormatContext *s, AVPacket *pkt) side_metadata = av_packet_get_side_data(pkt, AV_PKT_DATA_STRINGS_METADATA, &size); if (side_metadata && oggstream->packet_written) { - ogg_write_trailer(s); + ret = ogg_write_trailer(s); + if (ret < 0) + return ret; + ogg_deinit(s); + av_freep(&st->priv_data); av_dict_free(&st->metadata); ret = av_packet_unpack_dictionary(side_metadata, size, &st->metadata); if (ret < 0) return ret; - ogg_init(s); - ogg_write_header(s); + ret = ogg_init(s); + if (ret < 0) + return ret; + + oggstream = st->priv_data; + + ret = ogg_write_header(s); + if (ret < 0) + return ret; } oggstream->packet_written = 1; -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
