diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-03-12 19:31:21 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-03-12 19:31:21 +0400 |
commit | bf780b7ea8d9420e39f59d565d283806c31de193 (patch) | |
tree | 7e442e73438ccd8a69278cc7d3680b9365c41623 /libavcodec | |
parent | b52421940f5c764237d484c5d578ebc2b1c136c5 (diff) | |
parent | 19dd4017ab6dac11c77d797acebee4f60ad63a6f (diff) |
Merge commit '19dd4017ab6dac11c77d797acebee4f60ad63a6f'
* commit '19dd4017ab6dac11c77d797acebee4f60ad63a6f':
libopencore-amr: Add the missing 3rd argument of ff_get_buffer()
vmdaudio: fix invalid reads when packet size is not a multiple of chunk size
wmaprodec: return an error, not 0, when the input is too small.
Conflicts:
libavcodec/vmdav.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/vmdav.c | 2 | ||||
-rw-r--r-- | libavcodec/wmaprodec.c | 7 |
2 files changed, 6 insertions, 3 deletions
diff --git a/libavcodec/vmdav.c b/libavcodec/vmdav.c index e8574c10e2..cef4796411 100644 --- a/libavcodec/vmdav.c +++ b/libavcodec/vmdav.c @@ -619,7 +619,7 @@ static int vmdaudio_decode_frame(AVCodecContext *avctx, void *data, /* decode audio chunks */ if (audio_chunks > 0) { buf_end = buf + buf_size; - while ( buf_end - buf >= s->chunk_size) { + while (buf_end - buf >= s->chunk_size) { if (s->out_bps == 2) { decode_audio_s16(output_samples_s16, buf, s->chunk_size, avctx->channels); diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c index afe4661c6b..9a8158f292 100644 --- a/libavcodec/wmaprodec.c +++ b/libavcodec/wmaprodec.c @@ -1513,8 +1513,11 @@ static int decode_packet(AVCodecContext *avctx, void *data, s->packet_done = 0; /** sanity check for the buffer length */ - if (buf_size < avctx->block_align) - return 0; + if (buf_size < avctx->block_align) { + av_log(avctx, AV_LOG_ERROR, "Input packet too small (%d < %d)\n", + buf_size, avctx->block_align); + return AVERROR_INVALIDDATA; + } s->next_packet_start = buf_size - avctx->block_align; buf_size = avctx->block_align; |