diff --git a/nx/include/switch/services/time.h b/nx/include/switch/services/time.h index da3d644f..a76ebd25 100644 --- a/nx/include/switch/services/time.h +++ b/nx/include/switch/services/time.h @@ -65,8 +65,8 @@ Result timeLoadLocationNameList(u32 index, TimeLocationName *location_name_array Result timeLoadTimeZoneRule(const TimeLocationName *name, TimeZoneRule *rule); -Result timeToPosixTime(const TimeZoneRule *rule, const TimeCalendarTime *caltime, u64 *timestamp_list, size_t timestamp_list_size, u32 *timestamp_count); -Result timeToPosixTimeWithMyRule(const TimeCalendarTime *caltime, u64 *timestamp_list, size_t timestamp_list_size, u32 *timestamp_count); +Result timeToPosixTime(const TimeZoneRule *rule, const TimeCalendarTime *caltime, u64 *timestamp_list, size_t timestamp_list_count, u32 *timestamp_count); +Result timeToPosixTimeWithMyRule(const TimeCalendarTime *caltime, u64 *timestamp_list, size_t timestamp_list_count, u32 *timestamp_count); Result timeToCalendarTime(const TimeZoneRule *rule, u64 timestamp, TimeCalendarTime *caltime, TimeCalendarAdditionalInfo *info); Result timeToCalendarTimeWithMyRule(u64 timestamp, TimeCalendarTime *caltime, TimeCalendarAdditionalInfo *info); diff --git a/nx/source/services/time.c b/nx/source/services/time.c index 4e18c4d3..5e4b8531 100644 --- a/nx/source/services/time.c +++ b/nx/source/services/time.c @@ -440,11 +440,14 @@ Result timeToCalendarTimeWithMyRule(u64 timestamp, TimeCalendarTime *caltime, Ti return rc; } -Result timeToPosixTime(const TimeZoneRule *rule, const TimeCalendarTime *caltime, u64 *timestamp_list, size_t timestamp_list_size, u32 *timestamp_count) { +Result timeToPosixTime(const TimeZoneRule *rule, const TimeCalendarTime *caltime, u64 *timestamp_list, size_t timestamp_list_count, u32 *timestamp_count) { + if (!serviceIsActive(&g_timeTimeZoneService)) + return MAKERESULT(Module_Libnx, LibnxError_NotInitialized); + IpcCommand c; ipcInitialize(&c); ipcAddSendBuffer(&c, rule, sizeof(TimeZoneRule), BufferType_Normal); - ipcAddRecvStatic(&c, timestamp_list, timestamp_list_size, 0); + ipcAddRecvStatic(&c, timestamp_list, sizeof(u64)*timestamp_list_count, 0); struct { u64 magic; @@ -478,10 +481,13 @@ Result timeToPosixTime(const TimeZoneRule *rule, const TimeCalendarTime *caltime return rc; } -Result timeToPosixTimeWithMyRule(const TimeCalendarTime *caltime, u64 *timestamp_list, size_t timestamp_list_size, u32 *timestamp_count) { +Result timeToPosixTimeWithMyRule(const TimeCalendarTime *caltime, u64 *timestamp_list, size_t timestamp_list_count, u32 *timestamp_count) { + if (!serviceIsActive(&g_timeTimeZoneService)) + return MAKERESULT(Module_Libnx, LibnxError_NotInitialized); + IpcCommand c; ipcInitialize(&c); - ipcAddRecvStatic(&c, timestamp_list, timestamp_list_size, 0); + ipcAddRecvStatic(&c, timestamp_list, sizeof(u64)*timestamp_list_count, 0); struct { u64 magic;