mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-08-29 10:47:50 +02:00
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.
This commit is contained in:
@@ -352,7 +352,7 @@ std::string BCLog::Logger::LogTimestampStr(const std::string& str)
|
|||||||
const auto now{SystemClock::now()};
|
const auto now{SystemClock::now()};
|
||||||
const auto now_seconds{std::chrono::time_point_cast<std::chrono::seconds>(now)};
|
const auto now_seconds{std::chrono::time_point_cast<std::chrono::seconds>(now)};
|
||||||
strStamped = FormatISO8601DateTime(TicksSinceEpoch<std::chrono::seconds>(now_seconds));
|
strStamped = FormatISO8601DateTime(TicksSinceEpoch<std::chrono::seconds>(now_seconds));
|
||||||
if (m_log_time_micros) {
|
if (m_log_time_micros && !strStamped.empty()) {
|
||||||
strStamped.pop_back();
|
strStamped.pop_back();
|
||||||
strStamped += strprintf(".%06dZ", Ticks<std::chrono::microseconds>(now - now_seconds));
|
strStamped += strprintf(".%06dZ", Ticks<std::chrono::microseconds>(now - now_seconds));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user