aboutsummaryrefslogtreecommitdiff
path: root/src/logging.cpp
diff options
context:
space:
mode:
authorJohn Moffett <john.moff@gmail.com>2023-03-23 13:52:22 -0400
committerJohn Moffett <john.moff@gmail.com>2023-03-23 16:00:34 -0400
commit73f4eb511cf80cf52b78627347727ca02774b731 (patch)
tree23f4d416f38aae563b19afc4da756c987c05f428 /src/logging.cpp
parent381593c906fb54340dbc2377e2ebc6fb37582d08 (diff)
downloadbitcoin-73f4eb511cf80cf52b78627347727ca02774b731.tar.xz
Check that the Timestamp String is valid
The current `FormatISO8601DateTime` function will return an empty string if it encounters an error when converting the `int64_t` seconds since epoch to a formatted date time. In the unlikely case that happens, `strStamped.pop_back()` would be undefined behavior.
Diffstat (limited to 'src/logging.cpp')
-rw-r--r--src/logging.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/logging.cpp b/src/logging.cpp
index a9b2a2b33a..2d278bcef8 100644
--- a/src/logging.cpp
+++ b/src/logging.cpp
@@ -352,7 +352,7 @@ std::string BCLog::Logger::LogTimestampStr(const std::string& str)
const auto now{SystemClock::now()};
const auto now_seconds{std::chrono::time_point_cast<std::chrono::seconds>(now)};
strStamped = FormatISO8601DateTime(TicksSinceEpoch<std::chrono::seconds>(now_seconds));
- if (m_log_time_micros) {
+ if (m_log_time_micros && !strStamped.empty()) {
strStamped.pop_back();
strStamped += strprintf(".%06dZ", Ticks<std::chrono::microseconds>(now - now_seconds));
}