summaryrefslogtreecommitdiff
path: root/time
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2008-07-06 21:17:58 +0000
committerUlrich Drepper <drepper@redhat.com>2008-07-06 21:17:58 +0000
commitd35a163b3db29641b54e4524e6618cc62f16afd9 (patch)
treece18f27769154046b970c693131117c931332505 /time
parentd5a0160b583dbd08d77c999c2acc4b72c2a6d9db (diff)
downloadglibc-d35a163b3db29641b54e4524e6618cc62f16afd9.tar.gz
(__mktime_internal): Normalize tp->tm_isdst value.
Diffstat (limited to 'time')
-rw-r--r--time/mktime.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/time/mktime.c b/time/mktime.c
index e299375a16..e47d69615a 100644
--- a/time/mktime.c
+++ b/time/mktime.c
@@ -1,5 +1,5 @@
/* Convert a `struct tm' to a time_t value.
- Copyright (C) 1993-1999, 2002-2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1993-1999, 2002-2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Eggert <eggert@twinsun.com>.
@@ -293,7 +293,9 @@ __mktime_internal (struct tm *tp,
int mday = tp->tm_mday;
int mon = tp->tm_mon;
int year_requested = tp->tm_year;
- int isdst = tp->tm_isdst;
+ /* Normalize the value. */
+ int isdst = ((tp->tm_isdst >> (8 * sizeof (tp->tm_isdst) - 1))
+ | (tp->tm_isdst != 0));
/* 1 if the previous probe was DST. */
int dst2;