Skip to content
Snippets Groups Projects
Commit 58244aa7 authored by Timothy B. Terriberry's avatar Timothy B. Terriberry
Browse files

Forward port r14811 and r16073 from libvorbis.

Additional bulletproofing to hufftree decoding; reject underpopulated trees
 up-front.
Handle the case of single-entry codebooks.


git-svn-id: https://svn.xiph.org/trunk/Tremor@17510 0101bb08-14d6-0310-b084-bc0e0c8e3800
parent 3d08906f
No related branches found
No related tags found
No related merge requests found
......@@ -121,7 +121,20 @@ ogg_uint32_t *_make_words(long *l,long n,long sparsecount){
}else
if(sparsecount==0)count++;
}
/* sanity check the huffman tree; an underpopulated tree must be
rejected. The only exception is the one-node pseudo-nil tree,
which appears to be underpopulated because the tree doesn't
really exist; there's only one possible 'codeword' or zero bits,
but the above tree-gen code doesn't mark that. */
if(sparsecount != 1){
for(i=1;i<33;i++)
if(marker[i] & (0xffffffffUL>>(32-i))){
_ogg_free(r);
return(NULL);
}
}
/* bitreverse the words because our bitwise packer/unpacker is LSb
endian */
for(i=0,count=0;i<n;i++){
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment