diff options
author | Etienne Pierre-doray <etiennep@chromium.org> | 2018-09-11 13:40:46 +0000 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2021-07-25 20:36:57 -0700 |
commit | 186ef14d1a5ef23d04684a4548d8c1e7cdc62d15 (patch) | |
tree | a5e9034beba2842b1f177670e91d6e0c4fbb029f /disassembler_ztf.cc | |
parent | 725a8734514bb88b5acd976040e6710e26b2e3b5 (diff) | |
download | zucchini-186ef14d1a5ef23d04684a4548d8c1e7cdc62d15.tar.gz |
[Zucchini]: Fix implicit conversions.
Fix compile error with -Wshorten-64-to-32.
Bug: 881008
Change-Id: I52a1bab9cb7b4cb67ea4c275143390d42b192120
Reviewed-on: https://chromium-review.googlesource.com/1216524
Reviewed-by: Will Harris <wfh@chromium.org>
Reviewed-by: Samuel Huang <huangs@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590285}
NOKEYCHECK=True
GitOrigin-RevId: f6c70a2cc49b3a1765aa38763532e948c48a65a1
Diffstat (limited to 'disassembler_ztf.cc')
-rw-r--r-- | disassembler_ztf.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/disassembler_ztf.cc b/disassembler_ztf.cc index 9f3c318..62e3ed4 100644 --- a/disassembler_ztf.cc +++ b/disassembler_ztf.cc @@ -7,11 +7,13 @@ #include <algorithm> #include <cmath> #include <iterator> +#include <limits> #include <numeric> #include "base/logging.h" #include "base/macros.h" #include "base/numerics/checked_math.h" +#include "base/numerics/safe_conversions.h" #include "components/zucchini/algorithm.h" #include "components/zucchini/buffer_source.h" #include "components/zucchini/buffer_view.h" @@ -384,6 +386,8 @@ bool ReadZtfHeader(ConstBufferView image) { // Reject empty images and "ZTxtxTZ\n" (missing 't'). if (source.size() < kTotalMagicSize) return false; + if (source.size() > std::numeric_limits<offset_t>::max()) + return false; return source.CheckNextBytes({'Z', 'T', 'x', 't'}); } @@ -405,7 +409,7 @@ bool ZtfTranslator::Init(ConstBufferView image) { // sentinel. if (line_starts_.size() >= ztf::kMaxDimValue) return false; - line_starts_.push_back(i + 1); + line_starts_.push_back(base::checked_cast<offset_t>(i + 1)); // Check that the line length is reachable from an absolute reference. if (line_starts_.back() - *std::next(line_starts_.rbegin()) >= ztf::kMaxDimValue) { |