r17812: Fix bad unsigned comparisons with TIME_T_MIN/TIME_T_MAX.
authorJeremy Allison <jra@samba.org>
Thu, 24 Aug 2006 21:37:10 +0000 (21:37 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:38:50 +0000 (11:38 -0500)
Jeremy.
(This used to be commit bd1fbdfb824883060b02be969a10f999d387973f)

source3/lib/time.c

index d7f796ca16329fc1da1b7f7f60cd18dc5db21a40..7d8f79b14a9ead31d5dfd158e3de7ce3bcd72403 100644 (file)
@@ -235,13 +235,13 @@ static struct timespec nt_time_to_unix_timespec(NTTIME *nt)
        /* Now adjust by 369 years to make the secs since 1970 */
        d -= TIME_FIXUP_CONSTANT_INT;
 
-       if (d <= TIME_T_MIN) {
+       if (((time_t)d) <= TIME_T_MIN) {
                ret.tv_sec = TIME_T_MIN;
                ret.tv_nsec = 0;
                return ret;
        }
 
-       if (d >= TIME_T_MAX) {
+       if (((time_t)d) >= TIME_T_MAX) {
                ret.tv_sec = TIME_T_MAX;
                ret.tv_nsec = 0;
                return ret;
@@ -283,7 +283,7 @@ time_t nt_time_to_unix_abs(const NTTIME *nt)
        d += 1000*1000*10/2;
        d /= 1000*1000*10;
 
-       if (!(TIME_T_MIN <= d && d <= TIME_T_MAX)) {
+       if (!(TIME_T_MIN <= ((time_t)d) && ((time_t)d) <= TIME_T_MAX)) {
                return (time_t)0;
        }