diff options
Diffstat (limited to 'usr.bin/rcs/date.y')
-rw-r--r-- | usr.bin/rcs/date.y | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/usr.bin/rcs/date.y b/usr.bin/rcs/date.y index 42984602e2d..5d5e96c5abd 100644 --- a/usr.bin/rcs/date.y +++ b/usr.bin/rcs/date.y @@ -1,5 +1,5 @@ %{ -/* $OpenBSD: date.y,v 1.10 2010/07/31 08:54:42 ray Exp $ */ +/* $OpenBSD: date.y,v 1.11 2013/04/19 17:28:07 deraadt Exp $ */ /* ** Originally written by Steven M. Bellovin <smb@research.att.com> while @@ -558,9 +558,10 @@ Convert(time_t Month, time_t Day, time_t Year, time_t Hours, time_t Minutes, } DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0) ? 29 : 28; - /* Checking for 2038 bogusly assumes that time_t is 32 bits. But - I'm too lazy to try to check for time_t overflow in another way. */ - if (Year < YEAR_EPOCH || Year > 2038 || Month < 1 || Month > 12 || + /* XXX Sloppily check for 2038 if time_t is 32 bits */ + if (Year < YEAR_EPOCH || + (sizeof(time_t) == sizeof(int) && Year > 2038) || + Month < 1 || Month > 12 || /* Lint fluff: "conversion from long may lose accuracy" */ Day < 1 || Day > DaysInMonth[(int)--Month]) return (-1); |