From f3718dfd1bcbbaa8ca7040eec261de7ef4a81786 Mon Sep 17 00:00:00 2001 From: Adam Tkac Date: Tue, 17 Jul 2007 06:09:36 +0000 Subject: handle integer overflow in isc_time_secondsastimet more gracefully (#247856) --- bind-9.5-overflow.patch | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 bind-9.5-overflow.patch (limited to 'bind-9.5-overflow.patch') diff --git a/bind-9.5-overflow.patch b/bind-9.5-overflow.patch new file mode 100644 index 0000000..34b7bed --- /dev/null +++ b/bind-9.5-overflow.patch @@ -0,0 +1,24 @@ +diff -up bind-9.5.0a5/lib/isc/pthreads/condition.c.overflow bind-9.5.0a5/lib/isc/pthreads/condition.c +--- bind-9.5.0a5/lib/isc/pthreads/condition.c.overflow 2007-07-17 07:53:59.000000000 +0200 ++++ bind-9.5.0a5/lib/isc/pthreads/condition.c 2007-07-17 07:55:08.000000000 +0200 +@@ -43,7 +43,7 @@ isc_condition_waituntil(isc_condition_t + * POSIX defines a timespec's tv_sec as time_t. + */ + result = isc_time_secondsastimet(t, &ts.tv_sec); +- if (result != ISC_R_SUCCESS) ++ if (result != ISC_R_RANGE && result != ISC_R_SUCCESS) + return (result); + + /*! +diff -up bind-9.5.0a5/lib/isc/unix/time.c.overflow bind-9.5.0a5/lib/isc/unix/time.c +--- bind-9.5.0a5/lib/isc/unix/time.c.overflow 2007-02-14 01:27:27.000000000 +0100 ++++ bind-9.5.0a5/lib/isc/unix/time.c 2007-07-17 07:53:08.000000000 +0200 +@@ -379,6 +379,9 @@ isc_time_secondsastimet(const isc_time_t + * (Let's hope the compiler got the actual test right.) + */ + UNUSED(i); ++ ++ /* Means that t->seconds > maximum value in time_t and we have int time_t */ ++ seconds = INT_MAX; + return (ISC_R_RANGE); + } -- cgit