diff --git a/zic.c b/zic.c index 53de1fd..5ea99da 100644 --- a/zic.c +++ b/zic.c @@ -2139,12 +2139,11 @@ register const int wantedy; } if (dayoff < 0 && !TYPE_SIGNED(time_t)) return min_time; + if (dayoff < min_time / SECSPERDAY) + return min_time; + if (dayoff > max_time / SECSPERDAY) + return max_time; t = (time_t) dayoff * SECSPERDAY; - /* - ** Cheap overflow check. - */ - if (t / SECSPERDAY != dayoff) - return (dayoff > 0) ? max_time : min_time; return tadd(t, rp->r_tod); }