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:
parent
0bfa899544
commit
02f836b1b2
1 changed files with 15 additions and 4 deletions
|
|
@ -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++){
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue