Mercurial > libavcodec.hg
changeset 5352:4cd6e59c64eb libavcodec
Don't segfault if an empty codebook gets used.
Patch by Denes Balatoni: [ dbalatoni interware hu ]
Original thread: [Ffmpeg-devel] [PATCH/BUGREPORT] crash in vorbis decoder
date: 02/04/2007 11:08 PM
author | benoit |
---|---|
date | Tue, 17 Jul 2007 07:12:40 +0000 |
parents | 6b4caae00305 |
children | 7e4703e16bbd |
files | vorbis_dec.c |
diffstat | 1 files changed, 2 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/vorbis_dec.c Tue Jul 17 04:06:03 2007 +0000 +++ b/vorbis_dec.c Tue Jul 17 07:12:40 2007 +0000 @@ -351,7 +351,7 @@ } // Weed out unused vlcs and build codevector vector - codebook_setup->codevectors=(float *)av_mallocz(used_entries*codebook_setup->dimensions * sizeof(float)); + codebook_setup->codevectors=used_entries ? (float *)av_mallocz(used_entries*codebook_setup->dimensions * sizeof(float)) : NULL; for(j=0, i=0;i<entries;++i) { uint_fast8_t dim=codebook_setup->dimensions; @@ -1291,7 +1291,7 @@ uint_fast8_t vqclass=classifs[j_times_ptns_to_read+partition_count]; int_fast16_t vqbook=vr->books[vqclass][pass]; - if (vqbook>=0) { + if (vqbook>=0 && vc->codebooks[vqbook].codevectors) { uint_fast16_t coffs; unsigned dim= vc->codebooks[vqbook].dimensions; // not uint_fast8_t: 64bit is slower here on amd64 uint_fast16_t step= dim==1 ? vr->partition_size