Browse Source

shorten: check output buffer size before decoding

tags/n0.9
Justin Ruggles 14 years ago
parent
commit
882dafe9b6
1 changed files with 7 additions and 1 deletions
  1. +7
    -1
      libavcodec/shorten.c

+ 7
- 1
libavcodec/shorten.c View File

@@ -550,9 +550,15 @@ static int shorten_decode_frame(AVCodecContext *avctx,
/* if this is the last channel in the block, output the samples */
s->cur_chan++;
if (s->cur_chan == s->channels) {
int out_size = s->blocksize * s->channels *
av_get_bytes_per_sample(avctx->sample_fmt);
if (*data_size < out_size) {
av_log(avctx, AV_LOG_ERROR, "Output buffer is too small\n");
return AVERROR(EINVAL);
}
samples = interleave_buffer(samples, s->channels, s->blocksize, s->decoded);
s->cur_chan = 0;
*data_size = (int8_t *)samples - (int8_t *)data;
*data_size = out_size;
} else {
*data_size = 0;
}


Loading…
Cancel
Save