diff options
author | Daniel Chýlek <info@chylex.com> | 2018-02-08 12:48:24 +0100 |
---|---|---|
committer | Eugene Kliuchnikov <eustas@google.com> | 2018-02-08 12:48:24 +0100 |
commit | b5033d0e1e91d5c17e6b1079242e821e1bf3bdeb (patch) | |
tree | e719a0dd425cd8fe74676a67fe45bb2b569c9759 /scripts | |
parent | da254cffdb160bd6ac1cd6ea01944099978cbb71 (diff) | |
download | brotli-b5033d0e1e91d5c17e6b1079242e821e1bf3bdeb.zip brotli-b5033d0e1e91d5c17e6b1079242e821e1bf3bdeb.tar.gz brotli-b5033d0e1e91d5c17e6b1079242e821e1bf3bdeb.tar.bz2 |
Fix brotlidump.py crashing when complex prefix code has exactly 1 non-zero code length (#635)
According to the format specification regarding complex prefix codes:
> If there are at least two non-zero code lengths, any trailing zero
> code lengths are omitted, i.e., the last code length in the
> sequence must be non-zero. In this case, the sum of (32 >> code
> length) over all the non-zero code lengths must equal to 32.
> If the lengths have been read for the entire code length alphabet
> and there was only one non-zero code length, then the prefix code
> has one symbol whose code has zero length.
The script does not handle a case where there is just 1 non-zero code
length where the sum rule doesn't apply, which causes a StopIteration
exception when it attempts to read past the list boundaries.
An example of such file is tests/testdata/mapsdatazrh.compressed. I made
sure this change doesn't break anything by processing all *.compressed
files from the testdata folder with no thrown exceptions.
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions