=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/date.y,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- src/usr.bin/cvs/date.y 2010/07/31 08:54:42 1.22 +++ src/usr.bin/cvs/date.y 2013/04/19 17:28:06 1.23 @@ -1,5 +1,5 @@ %{ -/* $OpenBSD: date.y,v 1.22 2010/07/31 08:54:42 ray Exp $ */ +/* $OpenBSD: date.y,v 1.23 2013/04/19 17:28:06 deraadt Exp $ */ /* ** Originally written by Steven M. Bellovin while @@ -553,9 +553,10 @@ } 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);