aboutsummaryrefslogtreecommitdiff
path: root/reloc_utils.cc
AgeCommit message (Collapse)Author
2021-07-23[Zucchini] Introduce bit operations into algorithm.h.Samuel Huang
This CL makes algorithm.h in Chromium match trunk's version. Details: - Add {GetBit(), GetSignedBits(), GetUnsignedBits(), SignedFit()}. These will be used by the ARM Disassembler. - Rename ceil() to AlignCeil() to avoid confusion with ceil() from <cmath>. - Extensive unit tests. - Minor enum type fix in disassembler_win32.h (offset_t should not be used to represent lengths). Change-Id: Icf9ce254bce2e5a3e9c286dbb5a704aeacd8bc35 Reviewed-on: https://chromium-review.googlesource.com/1098556 Reviewed-by: Samuel Huang <huangs@chromium.org> Reviewed-by: Greg Thompson <grt@chromium.org> Commit-Queue: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#566893} NOKEYCHECK=True GitOrigin-RevId: 2c50b5af45fa271f06317419f6b8bfc5f4a80be0
2021-07-23[Zucchini] Remove Marking LogicCalder Kitagawa
With recent refactoring by etiennep@ marking high bits is no longer required. This removes checks for existing high bits which were previously filtered out to avoid conflicts with the marking system used. Change-Id: Iab929b19ade5c9faaf7c6be073136352170c794a Reviewed-on: https://chromium-review.googlesource.com/1002862 Commit-Queue: Calder Kitagawa <ckitagawa@google.com> Reviewed-by: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#549620} NOKEYCHECK=True GitOrigin-RevId: 79c5e3545912bb2ec527fbe61b2aafe66c6e5bc2
2021-07-23[Zucchini] Fix bugs found by Windows PE dissasembler fuzzingCalder Kitagawa
reloc_utils.cc contained an infinite looping and a crashing out-of-bounds behavior due to unsafe input. This resolves these "fatal" errors. Fuzzing has found no other infinite loops or crashes for the Windows PE dissasembler nor has ASAN detected any other out-of-bounds memory issues. The fuzzer will be committed separately once it is more performant (i.e. >= 1000 exec/s). Change-Id: Ieb07f77fb7b062238b4ce1587bcde45a4d3b7788 Reviewed-on: https://chromium-review.googlesource.com/996488 Reviewed-by: Samuel Huang <huangs@chromium.org> Reviewed-by: Greg Thompson <grt@chromium.org> Commit-Queue: Calder Kitagawa <ckitagawa@google.com> Cr-Commit-Position: refs/heads/master@{#548397} NOKEYCHECK=True GitOrigin-RevId: 975444866735e5e44b024707a7ff28582b8383cd
2021-07-23[Zucchini] Move Zucchini from /chrome/installer/ to /components/.Samuel Huang
(Use "git log --follow" to see older revisions of files). /components/ is the most logical place to put Zucchini, which only depends on /base and /testing/gtest. This move also enables Zucchini to be used by the Component Updater. Details: - Move all files; run the following to change deps and guards: sed 's/chrome\/installer/components/' *.cc *.h -i sed 's/CHROME_INSTALLER/COMPONENTS/' *.cc *.h -i - Sorting works out pretty well! - Change all 'chrome/installer/zucchini' to 'components/zucchini' throughout other parts of the repo; sort if necessary. - Fix 6 'git cl lint' errors. - Change 1 Bind() usage to BindRepeated(). - Update OWNER. Bug: 729154 Change-Id: I50c5a7d411ea85f707b5994ab319dfb2a1acccf7 Reviewed-on: https://chromium-review.googlesource.com/954923 Reviewed-by: Greg Thompson <grt@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Samuel Huang <huangs@chromium.org> Commit-Queue: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#542857} NOKEYCHECK=True GitOrigin-RevId: 577ef6c435e8d43be6e3e60ccbcbd1881780f4ec