From 04a3cfa78a3a0305296c9d5172fff4b1e14bd545 Mon Sep 17 00:00:00 2001 From: Gary Ching-Pang Lin Date: Wed, 17 Jul 2013 07:53:04 +0000 Subject: Per gmtime manpage, tm_mon is the number of months since January while MonthNo is the month of the year, so tm_mon should be MonthNo-1. Similarly, tm_mday is the day of the month, and DayNo is the number of days since the first day of the month. Assigning DayNo+1 to tm_mday to fit the definition. This commit also corrected miscalculated MonthNo and DayNo for the first day of the month. (Thanks to Laszlo Ersek!) Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gary Ching-Pang Lin Reviewed-by: Laszlo Ersek Reviewed-by: Long Qin Reviewed-by: Ye Ting git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14481 6f19259b-4bc3-4df7-8a09-765794883524 --- CryptoPkg/Library/BaseCryptLib/SysCall/TimerWrapper.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'CryptoPkg/Library/BaseCryptLib/SysCall') diff --git a/CryptoPkg/Library/BaseCryptLib/SysCall/TimerWrapper.c b/CryptoPkg/Library/BaseCryptLib/SysCall/TimerWrapper.c index 805e6b4e20..6422d610f3 100644 --- a/CryptoPkg/Library/BaseCryptLib/SysCall/TimerWrapper.c +++ b/CryptoPkg/Library/BaseCryptLib/SysCall/TimerWrapper.c @@ -148,14 +148,14 @@ struct tm * gmtime (const time_t *timer) GmTime->tm_yday = (int) DayNo; for (MonthNo = 12; MonthNo > 1; MonthNo--) { - if (DayNo > CumulativeDays[IsLeap(Year)][MonthNo]) { + if (DayNo >= CumulativeDays[IsLeap(Year)][MonthNo]) { DayNo = (UINT16) (DayNo - (UINT16) (CumulativeDays[IsLeap(Year)][MonthNo])); break; } } - GmTime->tm_mon = (int) MonthNo; - GmTime->tm_mday = (int) DayNo; + GmTime->tm_mon = (int) MonthNo - 1; + GmTime->tm_mday = (int) DayNo + 1; GmTime->tm_isdst = 0; GmTime->tm_gmtoff = 0; -- cgit v1.2.3