diff mbox series

[FFmpeg-devel,12/20] avformat/matroskadec: Avoid clobbering CodecPrivate size

Message ID AS8P250MB07441F9FCE26DFD86D0EA0D38FE9A@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM
State Accepted
Commit d989785e47a044cbfced09fbb85239a2c24e0af8
Headers show
Series [FFmpeg-devel,01/20] fate/matroska: Add test for remuxing non-rotation displaymatrix | expand

Commit Message

Andreas Rheinhardt Sept. 4, 2023, 11:27 a.m. UTC
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavformat/matroskadec.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
diff mbox series

Patch

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;