avformat/redspark: check coef_off

Fixes out of array reads

Found-by: Laurent Butti <laurentb@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/37/head
Michael Niedermayer 12 years ago
parent 9e477a3770
commit aadfadd784
  1. 5
      libavformat/redspark.c

@ -108,6 +108,11 @@ static int redspark_read_header(AVFormatContext *s)
if (bytestream2_get_byteu(&gbc)) // Loop flag if (bytestream2_get_byteu(&gbc)) // Loop flag
coef_off += 16; coef_off += 16;
if (coef_off + codec->channels * (32 + 14) > HEADER_SIZE) {
ret = AVERROR_INVALIDDATA;
goto fail;
}
codec->extradata_size = 32 * codec->channels; codec->extradata_size = 32 * codec->channels;
codec->extradata = av_malloc(codec->extradata_size); codec->extradata = av_malloc(codec->extradata_size);
if (!codec->extradata) { if (!codec->extradata) {

Loading…
Cancel
Save