[FFmpeg-cvslog] avformat/matroskadec: Avoid clobbering CodecPrivate size

Andreas Rheinhardt git at videolan.org
Thu Sep 7 02:18:52 EEST 2023


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Wed Aug  9 18:16:13 2023 +0200| [d989785e47a044cbfced09fbb85239a2c24e0af8] | committer: Andreas Rheinhardt

avformat/matroskadec: Avoid clobbering CodecPrivate size

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d989785e47a044cbfced09fbb85239a2c24e0af8
---

 libavformat/matroskadec.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 21a0a1ecd5..147a146873 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -3036,15 +3036,14 @@ static int matroska_parse_tracks(AVFormatContext *s)
 
             track->codec_priv.size = 0;
         }
-        track->codec_priv.size -= extradata_offset;
 
         if (par->codec_id == AV_CODEC_ID_NONE)
             av_log(matroska->ctx, AV_LOG_INFO,
                    "Unknown/unsupported AVCodecID %s.\n", track->codec_id);
 
-        if (!par->extradata && track->codec_priv.size > 0) {
+        if (!par->extradata && track->codec_priv.size > extradata_offset) {
             const uint8_t *src = track->codec_priv.data + extradata_offset;
-            unsigned extra_size = track->codec_priv.size;
+            unsigned extra_size = track->codec_priv.size - extradata_offset;
             ret = ff_alloc_extradata(par, extra_size);
             if (ret < 0)
                 return ret;



More information about the ffmpeg-cvslog mailing list