diff -pruN libvorbis-1.2.0.orig/lib/codebook.c libvorbis-1.2.0/lib/codebook.c
--- libvorbis-1.2.0.orig/lib/codebook.c 2009-10-30 11:28:22.000000000 +0100
+++ libvorbis-1.2.0/lib/codebook.c 2009-10-30 11:35:28.000000000 +0100
@@ -198,6 +198,7 @@ int vorbis_staticbook_unpack(oggpack_buf
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++;