[my-place] SVACE issues fix (usage of localtime, gmtime -> XX_r versions). 28/69728/1
authorMarcin <m.masternak@samsung.com>
Mon, 16 May 2016 11:15:50 +0000 (13:15 +0200)
committerMarcin <m.masternak@samsung.com>
Mon, 16 May 2016 11:15:50 +0000 (13:15 +0200)
Change-Id: I7ec8c72efaaedd627aec55ee170f759599c6e344
Signed-off-by: Marcin <m.masternak@samsung.com>
src/my-place/user_places/debug_utils.cpp
src/my-place/user_places/visit_categer.cpp

index d609f76abdfb498f67f62f1c05f739d232ec82e8..48b9cd9f38f54badcb7d84092a431982bc5176ab 100644 (file)
 
 std::string ctx::DebugUtils::humanReadableDateTime(time_t timestamp, std::string format, size_t size, bool utc)
 {
-       struct tm * timeinfo;
+       struct tm timeinfo;
+       struct tm *result;
+       tzset();
        if (utc) {
                format += " UTC";
                size += 4;
-               timeinfo = gmtime(&timestamp);
+               result = gmtime_r(&timestamp, &timeinfo);
        } else {
-               timeinfo = localtime(&timestamp);
+               result = localtime_r(&timestamp, &timeinfo);
        }
        char buffer[size];
-       if (timeinfo) {
-               strftime(buffer, size, format.c_str(), timeinfo);
+       if (result) {
+               strftime(buffer, size, format.c_str(), &timeinfo);
        } else {
                snprintf(buffer, size, "NULL");
        }
index 96000f6e441e54f1499c6aa54b377ca2138ed72c..36c9efd10e9e7da71750ae560518d325bf9f83ad 100644 (file)
@@ -298,12 +298,15 @@ const std::vector<ctx::num_t> ctx::VisitCateger::__featuresStd(
 
 ctx::TimeFeatures ctx::VisitCateger::timeFeatures(const time_t &time)
 {
-       struct tm *timeinfo = localtime(&time);
-       if (timeinfo == NULL) {
+       struct tm timeinfo;
+       struct tm *result;
+       tzset();
+       result = localtime_r(&time, &timeinfo);
+       if (result == NULL) {
                return {0, 0, 0, false};
        }
-       int minutesSinceMidnight = 60 * timeinfo->tm_hour + timeinfo->tm_min;
-       int weekday = (timeinfo->tm_wday + 6) % 7; // Monday is 0, Sunday is 6
+       int minutesSinceMidnight = 60 * timeinfo.tm_hour + timeinfo.tm_min;
+       int weekday = (timeinfo.tm_wday + 6) % 7; // Monday is 0, Sunday is 6
        bool weekend = weekday > 4;
        int minutesSinceBeginingOfTheWeek = 24 * 60 * weekday + minutesSinceMidnight;
        return {