diff --git a/codebook.c b/codebook.c index b920c01867e14e50e735ed4da576ac1789504c26..3381f738bac8c91e9666764f2ba237ab33b996fc 100644 --- a/codebook.c +++ b/codebook.c @@ -76,6 +76,7 @@ int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){ for(i=0;i<s->entries;){ long num=oggpack_read(opb,_ilog(s->entries-i)); if(num==-1)goto _eofout; + if(length>32)goto _errout; for(j=0;j<num && i<s->entries;j++,i++) s->lengthlist[i]=length; length++;