avformat/matroskadec: Avoid clobbering CodecPrivate size

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
pull/390/head
Andreas Rheinhardt 1 year ago
parent 007c22ce09
commit d989785e47
  1. 5
      libavformat/matroskadec.c

@ -3036,15 +3036,14 @@ static int matroska_parse_tracks(AVFormatContext *s)
track->codec_priv.size = 0; track->codec_priv.size = 0;
} }
track->codec_priv.size -= extradata_offset;
if (par->codec_id == AV_CODEC_ID_NONE) if (par->codec_id == AV_CODEC_ID_NONE)
av_log(matroska->ctx, AV_LOG_INFO, av_log(matroska->ctx, AV_LOG_INFO,
"Unknown/unsupported AVCodecID %s.\n", track->codec_id); "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; 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); ret = ff_alloc_extradata(par, extra_size);
if (ret < 0) if (ret < 0)
return ret; return ret;

Loading…
Cancel
Save