summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--timezone/zic.c11
2 files changed, 9 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index c96f699e67..44e8d6333b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2003-07-24 Ulrich Drepper <drepper@redhat.com>
+ * timezone/zic.c (rpytime): Replace cheap overflow check with a
+ functioning one.
+
* include/link.h (struct link_map): Add l_tls_firstbyte_offset field.
* sysdeps/generic/dl-tls.c [TLS_TCB_AT_TP] (_dl_determine_tlsoffset):
Fix calculation of offsets to take misalignment of first byte in
diff --git a/timezone/zic.c b/timezone/zic.c
index 64642b39c5..26d0041296 100644
--- a/timezone/zic.c
+++ b/timezone/zic.c
@@ -2152,12 +2152,13 @@ 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;
+ if (t > 0 && max_time - t < rp->r_tod)
+ return max_time;
return tadd(t, rp->r_tod);
}