diff --git a/media/libvorbis/lib/vorbis_synthesis.c b/media/libvorbis/lib/vorbis_synthesis.c index 8872f57..b7b2399 100644 --- a/media/libvorbis/lib/vorbis_synthesis.c +++ b/media/libvorbis/lib/vorbis_synthesis.c @@ -43,9 +43,14 @@ int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){ /* read our mode and pre/post windowsize */ mode=oggpack_read(opb,b->modebits); - if(mode==-1)return(OV_EBADPACKET); + if(mode==-1) { + return(OV_EBADPACKET); + } vb->mode=mode; + if(!ci->mode_param[mode]) { + return(OV_EBADPACKET); + } vb->W=ci->mode_param[mode]->blockflag; if(vb->W){