diff --git a/Release/src/utilities/asyncrt_utils.cpp b/Release/src/utilities/asyncrt_utils.cpp index 986b64bb73..a2fe96b81e 100644 --- a/Release/src/utilities/asyncrt_utils.cpp +++ b/Release/src/utilities/asyncrt_utils.cpp @@ -649,6 +649,10 @@ utility::string_t datetime::to_string(date_format format) const const int64_t input = static_cast(m_interval / _secondTicks); // convert to seconds const int frac_sec = static_cast(m_interval % _secondTicks); const time_t time = static_cast(input - ntToUnixOffsetSeconds); + if (static_cast(time) > 253370764800ull) { + throw std::out_of_range("The requested year exceeds the year 9999."); + } + struct tm t; #ifdef _MSC_VER if (gmtime_s(&t, &time) != 0)