commit | bc7af4890007c454f62f9bf32015bfbb90ac3b08 | [log] [tgz] |
---|---|---|
author | Amin Hassani <ahassani@google.com> | Tue Apr 10 18:05:04 2018 -0700 |
committer | Amin Hassani <ahassani@google.com> | Thu Apr 12 09:57:09 2018 -0700 |
tree | f6edbfdb00eacb143564cc94dd5a295c623c0aa8 | |
parent | 2526706e0bf8c9e3af81b81366a20eb9efac9651 [diff] |
Prevent BsdiffStream from accepting a nullptr input sream The BsdiffStream defined in puffpatch.cc can accept a nullptr stream with no problem. This is problematic. This patch adds a factory function to BsdiffFileStream to check if the incoming stream pointer is invalid, in which case it will return nullptr. Also we check that the source and target streams are created correctly. This bug was found by the puffin_fuzzer Bug: crbug.com/830156 Bug: crbug.com/831772 Test: unittests Test: corpus test Change-Id: Iad8b093166ef26e2649e14e7e78adee17a5b5557
Source code for Puffin: A utility for deterministic DEFLATE recompression.
TODO(ahassani): Describe the directory structure and how-tos.
Alphabet A value that occurs in the input stream. It can be either a literal:[0..255], and end of block sign [256], a length[257..285], or a distance [0..29].
Huffman code A variable length code representing the Huffman encoded of an alphabet. Huffman codes can be created uniquely using Huffman code length array.
Huffman code array An array which an array index identifies a Huffman code and the array element in that index represents the corresponding alphabet. Throughout the code, Huffman code arrays are identified by vectors with postfix hcodes_
.
Huffman reverse code array An array which an array index identifies an alphabet and the array element in that index contains the Huffman code of the alphabet. Throughout the code, The Huffman reverse code arrays are identified by vectors with postfix rcodes_
.
Huffman code length The number of bits in a Huffman code.
Huffman code length array An array of Huffman code lengths with the array index as the alphabet. Throughout the code, Huffman code length arrays are identified by vectors with postfix lens_
.