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
|