// Copyright 2022 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "src/utils/hex-format.h" #include <stddef.h> #include <stdint.h> #include "src/base/logging.h" namespace v8 { namespace internal { void FormatBytesToHex(char* formatted, size_t size_of_formatted, const uint8_t* val, size_t size_of_val) { // Prevent overflow by ensuring that the value can't exceed // 0x20000000 in length, which would be 0x40000000 when formatted CHECK_LT(size_of_val, 0x20000000); CHECK(size_of_formatted >= (size_of_val * 2)); for (size_t index = 0; index < size_of_val; index++) { size_t dest_index = index << 1; snprintf(&formatted[dest_index], size_of_formatted - dest_index, "%02x", val[index]); } } } // namespace internal } // namespace v8