Fix sprintf usage in base/utils.cc
sprintf is deprecated with Xcode 14.
Change-Id: I53289c7ff3e827cc2da9e08ffd6fd56fdc8c34c0
diff --git a/src/base/logging_unittest.cc b/src/base/logging_unittest.cc
index 8335895..0ed0b7a 100644
--- a/src/base/logging_unittest.cc
+++ b/src/base/logging_unittest.cc
@@ -39,8 +39,8 @@
LogMessage(kLogDebug, "file.cc", 100, "test message %d", 1);
SetLogMessageCallback(+[](LogMessageCallbackArgs log) {
- sprintf(g_last_line, "%d:%s:%d:%s", log.level, log.filename, log.line,
- log.message);
+ base::SprintfTrunc(g_last_line, sizeof(g_last_line), "%d:%s:%d:%s",
+ log.level, log.filename, log.line, log.message);
});
g_last_line[0] = 0;
diff --git a/src/base/utils.cc b/src/base/utils.cc
index 0ec6cdf..e5b8951 100644
--- a/src/base/utils.cc
+++ b/src/base/utils.cc
@@ -21,6 +21,7 @@
#include "perfetto/base/build_config.h"
#include "perfetto/base/logging.h"
#include "perfetto/ext/base/file_utils.h"
+#include "perfetto/ext/base/string_utils.h"
#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
@@ -283,9 +284,11 @@
std::unique_ptr<char[]> line(new char[bytes_per_line * 4 + 128]);
for (size_t i = 0; i < len; i += bytes_per_line) {
char* wptr = line.get();
- wptr += sprintf(wptr, "%08zX: ", i);
- for (size_t j = i; j < i + bytes_per_line && j < len; j++)
- wptr += sprintf(wptr, "%02X ", static_cast<unsigned>(data[j]) & 0xFF);
+ wptr += base::SprintfTrunc(wptr, 19, "%08zX: ", i);
+ for (size_t j = i; j < i + bytes_per_line && j < len; j++) {
+ wptr += base::SprintfTrunc(wptr, 4, "%02X ",
+ static_cast<unsigned>(data[j]) & 0xFF);
+ }
for (size_t j = static_cast<size_t>(wptr - line.get()); j < kPadding; ++j)
*(wptr++) = ' ';
for (size_t j = i; j < i + bytes_per_line && j < len; j++) {