1
0
Fork 0
forked from len0rd/rockbox

libtremor: merge upstream revision 17524 more sanity checking.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28761 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Nils Wallménius 2010-12-07 16:27:41 +00:00
parent 0bfa899544
commit 02f836b1b2

View file

@ -97,16 +97,27 @@ static vorbis_info_residue *res0_unpack(vorbis_info *vi,oggpack_buffer *opb){
info->partitions=oggpack_read(opb,6)+1; info->partitions=oggpack_read(opb,6)+1;
info->groupbook=oggpack_read(opb,8); info->groupbook=oggpack_read(opb,8);
/* check for premature EOP */
if(info->groupbook<0)goto errout;
for(j=0;j<info->partitions;j++){ for(j=0;j<info->partitions;j++){
int cascade=oggpack_read(opb,3); int cascade=oggpack_read(opb,3);
if(oggpack_read(opb,1)) int cflag=oggpack_read(opb,1);
cascade|=(oggpack_read(opb,5)<<3); if(cflag<0) goto errout;
if(cflag){
int c=oggpack_read(opb,5);
if(c<0) goto errout;
cascade|=(c<<3);
}
info->secondstages[j]=cascade; info->secondstages[j]=cascade;
acc+=icount(cascade); acc+=icount(cascade);
} }
for(j=0;j<acc;j++) for(j=0;j<acc;j++){
info->booklist[j]=oggpack_read(opb,8); int book=oggpack_read(opb,8);
if(book<0) goto errout;
info->booklist[j]=book;
}
if(info->groupbook>=ci->books)goto errout; if(info->groupbook>=ci->books)goto errout;
for(j=0;j<acc;j++){ for(j=0;j<acc;j++){