History log of /external/puffin/src/puff_reader.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
dc5d7972899ec1ab38a3b3a2aa424802b05ea4b1 02-Mar-2018 Amin Hassani <ahassani@google.com> Add missing invalid distance check

In the puffin spec, we defined the distance on the wire to be zero
based ([1..32768] on deflate RFC). But I missed it in the implementation and
stored non-zero based distances. However, this is not a bug and since we have
not shipped it yet, it is possible to change.

Another change include, adding proper checks for finding invalid copy length or
distance. Also more unittests for invalid copy length/distance values are
added. Lack of these checks were found by running puffin_fuzzer on cluster fuzz.

Bug: crbug.com/817733
Bug: crbug.com/817686
Test: unittests
Test: test_corpus.py

Change-Id: I38bf630904d7996a3c4f15919960517d26520987
/external/puffin/src/puff_reader.cc
7074da6508f1ab7cb860342e2434c5f5804bafbf 01-Oct-2017 Amin Hassani <ahassani@google.com> puffin: Introduce deflate bit addressing

This CL changes the addressing scheme of deflate blocks from Byte to
Bit. This CL allows breaking a given deflate stream into its
subblocks. A proper function is added to located the deflate subblocks
from a deflate stream. Proper unittests is added to check for new
functionality and its corner cases.

BUG=chromium:768505
TEST=unittests pass; brillo_update_payload {generate|verify} pass;

Change-Id: I9e953d0b7cafca417c09ec56a49ea2e93f027304
Reviewed-on: https://chromium-review.googlesource.com/703681
Commit-Ready: Amin Hassani <ahassani@chromium.org>
Tested-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
/external/puffin/src/puff_reader.cc
ec69c2b78e2359774678d084510c575cbc593471 25-Sep-2017 Amin Hassani <ahassani@google.com> puffin: End puffing and huffing based on the input size.

End Puff and Huff operations based on the size of the input instead of looking
if the final block bit is set. This way we can break the deflate blocks into
smaller blocks that are on a byte alignment.

BUG=chromium:768505
TEST=unittests pass.

Change-Id: Iab7ff961b37a15a237b21d20778f70429e432e18
Reviewed-on: https://chromium-review.googlesource.com/691117
Commit-Ready: Amin Hassani <ahassani@chromium.org>
Tested-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
/external/puffin/src/puff_reader.cc
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/puff_reader.cc