blob: 2486056c4f831cfb0f420895845e111d0521810a [file] [log] [blame]
From b41e068cbaf8d53538bb1b27a82256ad3f40a646 Mon Sep 17 00:00:00 2001
From: Olabode Anise <anise@chromium.org>
Date: Thu, 9 Sep 2021 05:24:21 +0000
Subject: [PATCH] fixing call to max through casting int to long
---
third_party/maldoca/src/maldoca/ole/oss_utils.cc | 5 +++--
third_party/maldoca/src/maldoca/ole/ppt.cc | 5 ++++-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/third_party/maldoca/src/maldoca/ole/oss_utils.cc b/third_party/maldoca/src/maldoca/ole/oss_utils.cc
index b1178df99a06..7fc9329bed9e 100644
--- a/third_party/maldoca/src/maldoca/ole/oss_utils.cc
+++ b/third_party/maldoca/src/maldoca/ole/oss_utils.cc
@@ -432,7 +432,8 @@ bool BufferToUtf8::ConvertEncodingBufferToUTF8String(absl::string_view input,
default:
// give up
- out_str->resize(std::max(out_ptr - out_str->data(), 0l));
+ out_str->resize(
+ std::max(static_cast<long>(out_ptr - out_str->data()), 0l));
LOG(ERROR) << "failed with error: " << errno
<< ", in_bytes_left: " << in_bytes_left
<< ", out_bytes_left: " << out_bytes_left
@@ -442,7 +443,7 @@ bool BufferToUtf8::ConvertEncodingBufferToUTF8String(absl::string_view input,
}
}
// resize to actual size
- out_str->resize(std::max(out_ptr - out_str->data(), 0l));
+ out_str->resize(std::max(static_cast<long>(out_ptr - out_str->data()), 0l));
// For some reason, it preserves start and trailing \0 so remove them
StripNullChar(out_str);
*bytes_consumed = input.size() - in_bytes_left;
diff --git a/third_party/maldoca/src/maldoca/ole/ppt.cc b/third_party/maldoca/src/maldoca/ole/ppt.cc
index 38566604ea09..9336a5050d8e 100644
--- a/third_party/maldoca/src/maldoca/ole/ppt.cc
+++ b/third_party/maldoca/src/maldoca/ole/ppt.cc
@@ -193,10 +193,13 @@ StatusOr<std::string> VBAProjectStorage::Decompress(
// Decompress zlib chunks
ZLib z;
+ // Have to use a temp var due to different datatypes (size_t vs uLongf)
+ uLongf decompressed_size_tmp = decompressed_size;
int result = z.UncompressChunk(
- reinterpret_cast<Bytef *>(&(storage[0])), &decompressed_size,
+ reinterpret_cast<Bytef *>(&(storage[0])), &decompressed_size_tmp,
reinterpret_cast<const Byte *>(compressed_storage.data()),
compressed_storage.size());
+ decompressed_size = decompressed_size_tmp;
if (result != Z_OK) {
auto status = absl::FailedPreconditionError(absl::StrCat(
"Could not decompress VBAProjectStorage, zlib error: ", result));
--
2.33.0.153.gba50c8fa24-goog