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())); }