summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvi Drissman <avi@chromium.org>2023-12-12 17:44:37 +0000
committerCopybara-Service <copybara-worker@google.com>2023-12-12 09:55:18 -0800
commit69a2e01edd818a76949f4f499e14feac896aad8f (patch)
tree4fcdaf20ede5106f2395e5f7e4f1b97c569aafcc
parentdd5fc1316c9bfe87091c4f418e427633590a84a4 (diff)
downloadzlib-69a2e01edd818a76949f4f499e14feac896aad8f.tar.gz
Add limitations to bit_cast
Using bit_cast on pointers does not accomplish anything useful, and obscures what might be incorrect behavior. Do not allow base::bit_cast to be misused in that way. Bug: 1506769 Change-Id: Ib9f3acf954c5537c7520f72827854de81afda382 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5094596 Reviewed-by: Hongchan Choi <hongchan@chromium.org> Reviewed-by: Ilya Sherman <isherman@chromium.org> Reviewed-by: Will Harris <wfh@chromium.org> Reviewed-by: danakj <danakj@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Dominic Battre <battre@chromium.org> Commit-Queue: Avi Drissman <avi@chromium.org> Reviewed-by: Adam Rice <ricea@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org> Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#1236404} NOKEYCHECK=True GitOrigin-RevId: 70cb7f749d60410db4397c0fc3b35d189ad591ab
-rw-r--r--google/compression_utils.cc22
1 files changed, 11 insertions, 11 deletions
diff --git a/google/compression_utils.cc b/google/compression_utils.cc
index 279ea07..c2b17e4 100644
--- a/google/compression_utils.cc
+++ b/google/compression_utils.cc
@@ -4,7 +4,6 @@
#include "third_party/zlib/google/compression_utils.h"
-#include "base/bit_cast.h"
#include "base/check_op.h"
#include "base/process/memory.h"
#include "base/sys_byteorder.h"
@@ -24,8 +23,8 @@ bool GzipCompress(base::span<const char> input,
// uLongf can be larger than size_t.
uLongf compressed_size_long = static_cast<uLongf>(output_buffer_size);
if (zlib_internal::GzipCompressHelper(
- base::bit_cast<Bytef*>(output_buffer), &compressed_size_long,
- base::bit_cast<const Bytef*>(input.data()),
+ reinterpret_cast<Bytef*>(output_buffer), &compressed_size_long,
+ reinterpret_cast<const Bytef*>(input.data()),
static_cast<uLongf>(input.size()), malloc_fn, free_fn) != Z_OK) {
return false;
}
@@ -55,7 +54,7 @@ bool GzipCompress(base::span<const uint8_t> input, std::string* output) {
if (zlib_internal::GzipCompressHelper(
compressed_data, &compressed_data_size,
- base::bit_cast<const Bytef*>(input.data()), input_size, nullptr,
+ reinterpret_cast<const Bytef*>(input.data()), input_size, nullptr,
nullptr) != Z_OK) {
free(compressed_data);
return false;
@@ -82,8 +81,8 @@ bool GzipUncompress(const std::string& input, std::string* output) {
uncompressed_output.resize(uncompressed_size);
if (zlib_internal::GzipUncompressHelper(
- base::bit_cast<Bytef*>(uncompressed_output.data()),
- &uncompressed_size, base::bit_cast<const Bytef*>(input.data()),
+ reinterpret_cast<Bytef*>(uncompressed_output.data()),
+ &uncompressed_size, reinterpret_cast<const Bytef*>(input.data()),
static_cast<uLongf>(input.length())) == Z_OK) {
output->swap(uncompressed_output);
return true;
@@ -102,8 +101,8 @@ bool GzipUncompress(base::span<const uint8_t> input,
if (uncompressed_size > output.size())
return false;
return zlib_internal::GzipUncompressHelper(
- base::bit_cast<Bytef*>(output.data()), &uncompressed_size,
- base::bit_cast<const Bytef*>(input.data()),
+ reinterpret_cast<Bytef*>(const_cast<uint8_t*>(output.data())),
+ &uncompressed_size, reinterpret_cast<const Bytef*>(input.data()),
static_cast<uLongf>(input.size())) == Z_OK;
}
@@ -117,8 +116,8 @@ bool GzipUncompress(base::span<const uint8_t> input, std::string* output) {
uLongf uncompressed_size = GetUncompressedSize(input);
output->resize(uncompressed_size);
return zlib_internal::GzipUncompressHelper(
- base::bit_cast<Bytef*>(output->data()), &uncompressed_size,
- base::bit_cast<const Bytef*>(input.data()),
+ reinterpret_cast<Bytef*>(output->data()), &uncompressed_size,
+ reinterpret_cast<const Bytef*>(input.data()),
static_cast<uLongf>(input.size())) == Z_OK;
}
@@ -128,7 +127,8 @@ uint32_t GetUncompressedSize(base::span<const char> compressed_data) {
uint32_t GetUncompressedSize(base::span<const uint8_t> compressed_data) {
return zlib_internal::GetGzipUncompressedSize(
- base::bit_cast<Bytef*>(compressed_data.data()), compressed_data.size());
+ reinterpret_cast<const Bytef*>(compressed_data.data()),
+ compressed_data.size());
}
} // namespace compression