diff options
author | John Moffett <john.moff@gmail.com> | 2023-03-23 13:52:22 -0400 |
---|---|---|
committer | John Moffett <john.moff@gmail.com> | 2023-03-23 16:00:34 -0400 |
commit | 73f4eb511cf80cf52b78627347727ca02774b731 (patch) | |
tree | 23f4d416f38aae563b19afc4da756c987c05f428 | |
parent | 381593c906fb54340dbc2377e2ebc6fb37582d08 (diff) | |
download | bitcoin-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.
-rw-r--r-- | src/logging.cpp | 2 |
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)); } |