From 333531baea871a549e693a96ba559c56cd52ad05 Mon Sep 17 00:00:00 2001
From: Pawel Andruszkiewicz
Date: Thu, 11 Jun 2015 09:33:39 +0200
Subject: [PATCH] [Alarm] Replaced localtime with localtime_r.
Prevent CID: 438161
[Verification] TCT pass rate: 100%
Change-Id: I9011067c049332954b68c0da7aa1daa739477768
Signed-off-by: Pawel Andruszkiewicz
---
src/alarm/alarm_manager.cc | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/alarm/alarm_manager.cc b/src/alarm/alarm_manager.cc
index da1226ac..6c21b56e 100755
--- a/src/alarm/alarm_manager.cc
+++ b/src/alarm/alarm_manager.cc
@@ -156,29 +156,29 @@ void AlarmManager::Add(const picojson::value& args, picojson::object& out) {
int period = 0;
time_t second = seconds / 1000;
- struct tm *start_date;
+ struct tm start_date = {0};
- start_date = localtime(&second);
- if (start_date == nullptr) {
+ tzset();
+ if (nullptr == localtime_r(&second, &start_date)) {
LoggerE("Invalid date.");
ReportError(PlatformResult(ErrorCode::UNKNOWN_ERR, "Invalid date."), &out);
return;
}
- mktime(start_date);
+ mktime(&start_date);
char str_date[kDateSize];
- snprintf(str_date, sizeof(str_date), "%d %d %d %d %d %d %d", start_date->tm_year,
- start_date->tm_mon, start_date->tm_mday, start_date->tm_hour, start_date->tm_min,
- start_date->tm_sec, start_date->tm_isdst);
+ snprintf(str_date, sizeof(str_date), "%d %d %d %d %d %d %d", start_date.tm_year,
+ start_date.tm_mon, start_date.tm_mday, start_date.tm_hour, start_date.tm_min,
+ start_date.tm_sec, start_date.tm_isdst);
app_control_add_extra_data(app_control, kAlarmAbsoluteDateKey, str_date);
int ret = 0;
if (it_period->second.is()) {
period = static_cast(it_period->second.get());
- ret = alarm_schedule_at_date(app_control, start_date, period, &alarm_id);
+ ret = alarm_schedule_at_date(app_control, &start_date, period, &alarm_id);
} else if (it_daysOfWeek->second.is()) {
picojson::array days_of_week = it_daysOfWeek->second.get();
int repeat_value = 0;
@@ -205,10 +205,10 @@ void AlarmManager::Add(const picojson::value& args, picojson::object& out) {
return;
}
ret = alarm_schedule_with_recurrence_week_flag(
- app_control, start_date, repeat_value, &alarm_id);
+ app_control, &start_date, repeat_value, &alarm_id);
}
} else {
- ret = alarm_schedule_at_date(app_control, start_date, 0, &alarm_id);
+ ret = alarm_schedule_at_date(app_control, &start_date, 0, &alarm_id);
}
if (ALARM_ERROR_NONE != ret) {
--
2.34.1