diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-01-07 19:05:56 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-01-07 19:05:56 +0400 |
commit | 8aead3ffa89a7d92b54b049a63bf6485f643835b (patch) | |
tree | f3637858255d6f9b2b8757c6c412f39a689fc176 /libavcodec | |
parent | 2303b45112b4c9097a661998f3d9ebe81eea2cac (diff) |
avformat/adxdec: dont return random data on EOF
Fixes use of uninitialized memory
Partly fixes; msan_uninit-mem_7fb7d24780d0_2744_R03T.CAK
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/adxdec.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libavcodec/adxdec.c b/libavcodec/adxdec.c index e59cc92984..ec33e73541 100644 --- a/libavcodec/adxdec.c +++ b/libavcodec/adxdec.c @@ -157,9 +157,11 @@ static int adx_decode_frame(AVCodecContext *avctx, void *data, buf_size -= BLOCK_SIZE; buf += BLOCK_SIZE; } - samples_offset += BLOCK_SAMPLES; + if (!c->eof) + samples_offset += BLOCK_SAMPLES; } + frame->nb_samples = samples_offset; *got_frame_ptr = 1; return buf - avpkt->data; |