summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2023-08-09 18:16:13 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2023-09-07 00:28:27 +0200
commitd989785e47a044cbfced09fbb85239a2c24e0af8 (patch)
tree898f1f304a75e3cab0f088e7b8d18bf42a834751
parent007c22ce09db678a9d64705ba49dcdf058cd7d4d (diff)
avformat/matroskadec: Avoid clobbering CodecPrivate size
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavformat/matroskadec.c5
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;