Mercurial > libavcodec.hg
comparison vorbis_dec.c @ 10232:1792a26c0bbb libavcodec
Check dimensions against 0 too.
39_vorbis_zero_dims.patch from chrome
author | michael |
---|---|
date | Wed, 23 Sep 2009 08:35:29 +0000 |
parents | e99054a89bfe |
children | 2355ca5dc57c |
comparison
equal
deleted
inserted
replaced
10231:e99054a89bfe | 10232:1792a26c0bbb |
---|---|
242 av_log(vc->avccontext, AV_LOG_ERROR, " %"PRIdFAST16". Codebook setup data corrupt. \n", cb); | 242 av_log(vc->avccontext, AV_LOG_ERROR, " %"PRIdFAST16". Codebook setup data corrupt. \n", cb); |
243 goto error; | 243 goto error; |
244 } | 244 } |
245 | 245 |
246 codebook_setup->dimensions=get_bits(gb, 16); | 246 codebook_setup->dimensions=get_bits(gb, 16); |
247 if (codebook_setup->dimensions>16) { | 247 if (codebook_setup->dimensions>16||codebook_setup->dimensions==0) { |
248 av_log(vc->avccontext, AV_LOG_ERROR, " %"PRIdFAST16". Codebook's dimension is too large (%d). \n", cb, codebook_setup->dimensions); | 248 av_log(vc->avccontext, AV_LOG_ERROR, " %"PRIdFAST16". Codebook's dimension is invalid (%d). \n", cb, codebook_setup->dimensions); |
249 goto error; | 249 goto error; |
250 } | 250 } |
251 entries=get_bits(gb, 24); | 251 entries=get_bits(gb, 24); |
252 if (entries>V_MAX_VLCS) { | 252 if (entries>V_MAX_VLCS) { |
253 av_log(vc->avccontext, AV_LOG_ERROR, " %"PRIdFAST16". Codebook has too many entries (%"PRIdFAST32"). \n", cb, entries); | 253 av_log(vc->avccontext, AV_LOG_ERROR, " %"PRIdFAST16". Codebook has too many entries (%"PRIdFAST32"). \n", cb, entries); |