diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-06-02 02:21:30 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-06-07 00:55:25 +0200 |
commit | 70af4f209f552263f8ec7b72d309588e81823ca3 (patch) | |
tree | 2b8bcad0e97a6abbad370136c8cd5f7b490b5235 | |
parent | 0964e189dafc382d06dfc78ffba55d028f7df6d5 (diff) | |
download | ffmpeg-70af4f209f552263f8ec7b72d309588e81823ca3.tar.gz |
ffv1: fix crash caused by version becoming inconsistent
Fixes part of Ticket1372
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 97c281d5b7d1c4850a8ba7d9921137634224b2f3)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/ffv1.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/ffv1.c b/libavcodec/ffv1.c index bffd744937..79409e2a16 100644 --- a/libavcodec/ffv1.c +++ b/libavcodec/ffv1.c @@ -1769,7 +1769,12 @@ static int read_header(FFV1Context *f){ memset(state, 128, sizeof(state)); if(f->version < 2){ - f->version= get_symbol(c, state, 0); + unsigned v= get_symbol(c, state, 0); + if(v >= 2){ + av_log(f->avctx, AV_LOG_ERROR, "invalid version %d in ver01 header\n", v); + return AVERROR_INVALIDDATA; + } + f->version = v; f->ac= f->avctx->coder_type= get_symbol(c, state, 0); if(f->ac>1){ for(i=1; i<256; i++){ |