Module Name: src Committed By: christos Date: Sat Jan 15 15:42:10 UTC 2011
Modified Files: src/lib/libc/time: localtime.c Log Message: Fix reversed oveflow check. To generate a diff of this commit: cvs rdiff -u -r1.53 -r1.54 src/lib/libc/time/localtime.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libc/time/localtime.c diff -u src/lib/libc/time/localtime.c:1.53 src/lib/libc/time/localtime.c:1.54 --- src/lib/libc/time/localtime.c:1.53 Sat Jan 15 07:31:57 2011 +++ src/lib/libc/time/localtime.c Sat Jan 15 10:42:10 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: localtime.c,v 1.53 2011/01/15 12:31:57 martin Exp $ */ +/* $NetBSD: localtime.c,v 1.54 2011/01/15 15:42:10 christos Exp $ */ /* ** This file is in the public domain, so clarified as of @@ -10,7 +10,7 @@ #if 0 static char elsieid[] = "@(#)localtime.c 8.9"; #else -__RCSID("$NetBSD: localtime.c,v 1.53 2011/01/15 12:31:57 martin Exp $"); +__RCSID("$NetBSD: localtime.c,v 1.54 2011/01/15 15:42:10 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -1704,8 +1704,10 @@ int number0; number0 = *number; + if (delta < 0 ? number0 < INT_MIN - delta : INT_MAX - delta < number0) + return 1; *number += delta; - return (*number < number0) != (delta < 0); + return 0; } static int @@ -1714,8 +1716,10 @@ long number0; number0 = *number; + if (delta < 0 ? number0 < LONG_MIN - delta : LONG_MAX - delta < number0) + return 1; *number += delta; - return (*number < number0) != (delta < 0); + return 0; } static int