21 строка
609 B
Diff
21 строка
609 B
Diff
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){
|
|
|