Check symbol validity to avoid a crash, fixes issue 2523.
authorDaniel Kang <daniel.d.kang@gmail.com>
Sat, 15 Jan 2011 10:18:38 +0000 (10:18 +0000)
committerCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>
Sat, 15 Jan 2011 10:18:38 +0000 (10:18 +0000)
Patch by Daniel Kang, daniel.d.kang at gmail

Originally committed as revision 26360 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/ivi_common.c

index b158458..0e552bc 100644 (file)
@@ -404,6 +404,10 @@ int ff_ivi_decode_blocks(GetBitContext *gb, IVIBandDesc *band, IVITile *tile)
                         hi  = get_vlc2(gb, band->blk_vlc.tab->table, IVI_VLC_BITS, 1);
                         val = IVI_TOSIGNED((hi << 6) | lo); /* merge them and convert into signed val */
                     } else {
+                        if (sym >= 256U) {
+                            av_log(NULL, AV_LOG_ERROR, "Invalid sym encountered: %d.\n", sym);
+                            return -1;
+                        }
                         run = rvmap->runtab[sym];
                         val = rvmap->valtab[sym];
                     }