From: Pawel Andruszkiewicz
Date: Tue, 8 Mar 2016 09:08:58 +0000 (+0100)
Subject: [Globalization] Replaced localtime with localtime_r.
X-Git-Tag: accepted/tizen/common/20160308.143712^2~1
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0ecbae80d0f7e04e205949b8a3214f1098420140;p=platform%2Fcore%2Fapi%2Fcordova-plugins.git
[Globalization] Replaced localtime with localtime_r.
Fixes: SVACE 46469
[Verification] Pass rate did not change.
Change-Id: If4bf00dd1c34800f0216a0f9fdbda7b42e277f57
Signed-off-by: Pawel Andruszkiewicz
---
diff --git a/src/globalization/cordova_globalization_instance.cc b/src/globalization/cordova_globalization_instance.cc
index cae29c9..fa6f045 100644
--- a/src/globalization/cordova_globalization_instance.cc
+++ b/src/globalization/cordova_globalization_instance.cc
@@ -127,25 +127,29 @@ void CordovaGlobalizationInstance::StringToDate(const picojson::value& args,
// UDate holds milliseconds, conversion to time_t needs seconds
time_t seconds_ts = (time_t)(result_date / 1000);
- struct tm * result_time = localtime(&seconds_ts);
- picojson::value result = picojson::value(picojson::object());
- picojson::object& result_obj = result.get();
- result_obj.insert(std::make_pair(
- "year", picojson::value(static_cast(result_time->tm_year + 1900))));
- result_obj.insert(std::make_pair(
- "month", picojson::value(static_cast(result_time->tm_mon))));
- result_obj.insert(std::make_pair(
- "day", picojson::value(static_cast(result_time->tm_mday))));
- result_obj.insert(std::make_pair(
- "hour", picojson::value(static_cast(result_time->tm_hour))));
- result_obj.insert(std::make_pair(
- "minute", picojson::value(static_cast(result_time->tm_min))));
- result_obj.insert(std::make_pair(
- "second", picojson::value(static_cast(result_time->tm_sec))));
- result_obj.insert(std::make_pair(
- "millisecond", picojson::value(static_cast(0.0))));
+ struct tm result_time = {0};
+ if (nullptr != localtime_r(&seconds_ts, &result_time)) {
+ picojson::value result = picojson::value(picojson::object());
+ picojson::object& result_obj = result.get();
+ result_obj.insert(std::make_pair(
+ "year", picojson::value(static_cast(result_time.tm_year + 1900))));
+ result_obj.insert(std::make_pair(
+ "month", picojson::value(static_cast(result_time.tm_mon))));
+ result_obj.insert(std::make_pair(
+ "day", picojson::value(static_cast(result_time.tm_mday))));
+ result_obj.insert(std::make_pair(
+ "hour", picojson::value(static_cast(result_time.tm_hour))));
+ result_obj.insert(std::make_pair(
+ "minute", picojson::value(static_cast(result_time.tm_min))));
+ result_obj.insert(std::make_pair(
+ "second", picojson::value(static_cast(result_time.tm_sec))));
+ result_obj.insert(std::make_pair(
+ "millisecond", picojson::value(static_cast(0.0))));
- ReportSuccess(result, response->get());
+ ReportSuccess(result, response->get());
+ } else {
+ ReportError(PlatformResult(ErrorCode::INVALID_VALUES_ERR, "Failed to convert"), &(response->get()));
+ }
} else {
ReportError(ret, &(response->get()));
}