diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2023-08-09 18:16:13 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2023-09-07 00:28:27 +0200 |
commit | d989785e47a044cbfced09fbb85239a2c24e0af8 (patch) | |
tree | 898f1f304a75e3cab0f088e7b8d18bf42a834751 | |
parent | 007c22ce09db678a9d64705ba49dcdf058cd7d4d (diff) |
avformat/matroskadec: Avoid clobbering CodecPrivate size
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r-- | libavformat/matroskadec.c | 5 |
1 files 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; |