diff --git a/ChangeLog b/ChangeLog index b9111115e..1210bf9a6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,7 @@ v1.14.1-snapshot =========== Bug fixes: - #7016 Fix script that generates version number +- #7006 Resolve code scanning issues Enhancements: diff --git a/src/lib/base/Log.cpp b/src/lib/base/Log.cpp index ce24bd176..066735e38 100644 --- a/src/lib/base/Log.cpp +++ b/src/lib/base/Log.cpp @@ -177,13 +177,17 @@ Log::print(const char* file, int line, const char* fmt, ...) // do not prefix time and file for kPRINT (CLOG_PRINT) if (priority != kPRINT) { - struct tm *tm; + struct tm tm; static const int timestamp_size = 50; char timestamp[timestamp_size]; time_t t; time(&t); - tm = localtime(&t); - snprintf(timestamp, timestamp_size, "%04i-%02i-%02iT%02i:%02i:%02i", tm->tm_year + 1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); +#if WINAPI_MSWINDOWS + localtime_s(&tm, &t); +#else + localtime_r(&t, &tm); +#endif + snprintf(timestamp, timestamp_size, "%04i-%02i-%02iT%02i:%02i:%02i", tm.tm_year + 1900, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); // square brackets, spaces, comma and null terminator take about 10 int size = 10; diff --git a/src/lib/server/InputFilter.cpp b/src/lib/server/InputFilter.cpp index d2c4d526c..da29f5bd8 100644 --- a/src/lib/server/InputFilter.cpp +++ b/src/lib/server/InputFilter.cpp @@ -497,7 +497,7 @@ InputFilter::KeyboardBroadcastAction::format() const } else { return synergy::string::sprintf("%s(%s,%.*s)", s_name, s_mode[m_mode], - m_screens.size() - 2, + static_cast(m_screens.size() >= 2 ? m_screens.size() - 2 : 0), m_screens.c_str() + 1); } } diff --git a/src/test/unittests/synergy/ProtocolUtilTests.cpp b/src/test/unittests/synergy/ProtocolUtilTests.cpp index 99904c5fb..a1d34a3ec 100644 --- a/src/test/unittests/synergy/ProtocolUtilTests.cpp +++ b/src/test/unittests/synergy/ProtocolUtilTests.cpp @@ -56,7 +56,7 @@ MATCHER_P(EqVoidPointeeInt32, expected, "") MATCHER_P(EqVoidVectorInt1byte, expected, "") { bool Result = true; - const UInt8* Actual = (static_cast(arg)) + sizeof (UInt32); + const UInt8* Actual = (static_cast(arg)) + 4; const size_t Size = *(Actual - 1); if (Size == expected.size()){ @@ -77,7 +77,7 @@ MATCHER_P(EqVoidVectorInt1byte, expected, "") MATCHER_P(EqVoidVectorInt2bytes, expected, "") { bool Result = true; - const UInt16* Actual = (static_cast(arg)) + sizeof (UInt16); + const UInt16* Actual = (static_cast(arg)) + 2; const size_t Size = *(Actual - 1) >> 8; if (Size == expected.size()){