History log of /external/puffin/src/huffman_table.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d8cc449d220903e3c0e777db8bb191b6cb6ee942 08-Feb-2018 Amin Hassani <ahassani@google.com> Fix contiguous huffman table read problem.

In deflate format after the code lengths, there are a certain number of code
lengths for literal/lengths alphabet and a certain number of codes for distance
alphabets. But these two groups are huffman coded contiguously (by contiguously
we mean image two arrays are appended into one array and the resulting array is
huffman coded versus two arrays are individually huffman coded). But the current
implementation of puffin, decodes these two groups of codes individually, which
is basically wrong. This corner case has never been hit in CrOS and was
discovered in AOSP.

This patch, fixes this problem by coding/decoding those two Huffman code arrays
together.

Also fixes a small problem in unittests for = v. ==.

Bug: 72815313
Test: brillo_update_payload --verify

Change-Id: I1f90bb3aa36172be3020ebffb4b3ae5be0d8b1ce
/external/puffin/src/huffman_table.h
c3e6b533aa435516b788ae353a43602c57936afd 08-Mar-2017 Amin Hassani <ahassani@google.com> Puffin: Deterministic patching tool for deflate streams.

This is a deterministic semi-recompression based patching tool for
deflate streams. Its main purpose is to provide necessary tools for
updating the squashfs Android container which is gzipped (deflate
base). For more details refer to go/puffin-recompression.

BUG=chromium:717785
TEST=cros_workon_make --board=amd64-generic puffin --test
CQ-DEPEND=CL:451881

Change-Id: I6f644bf078bedb809d14fba821a12ddf9849712a
Reviewed-on: https://chromium-review.googlesource.com/451861
Commit-Ready: Amin Hassani <ahassani@chromium.org>
Tested-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Andrew de los Reyes <adlr@chromium.org>
Reviewed-by: Sen Jiang <senj@chromium.org>
/external/puffin/src/huffman_table.h