NETWORK PRESENCE ABOUT SERVICES PRODUCTS TRAINING CONTACT US SEARCH SUPPORT
 


Search
display results
words begin  exact words  any words part 

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [FW1] Dayligth saving time problem explanation [Fw: [BUGTRAQ] The April Fools 2001 bug in Windows]



so according to these articles, there is no fix, just wait it out until
after the 8th?


----- Original Message -----
From: "Vitaly Osipov" <[email protected]>
To: <[email protected]>; <[email protected]>
Sent: Tuesday, April 03, 2001 6:50 AM
Subject: [FW1] Dayligth saving time problem explanation [Fw: [BUGTRAQ] The
April Fools 2001 bug in Windows]


>
> It looks like that you experience the problem discussed in the message
below
> (from BugTraq)
> And it is going to last for a week.
>
> ----- Original Message -----
> From: "Richard M. Smith" <[email protected]>
> To: <[email protected]>
> Sent: Wednesday, March 28, 2001 3:14 PM
> Subject: [BUGTRAQ] The April Fools 2001 bug in Windows
>
>
> > Hi,
> >
> > Attached is a message I wrote 2 years ago about a time-related bug in
> > Windows.  It turns out the bug is going to hit on this Sunday.
> > Applications built with certain versions of Visual C++ could
> > start giving the wrong time of day starting on Sunday.  The problem
> > will last for a week.
> >
> > Microsoft released a patch for this problem in early 1999,
> > and many computers have been updated with a fix.  However,
> > in some cases applications also need to be updated and it is
> > very unclear how many of them are deployed with the
> > bug.  This bug will most likely be present in embedded computers
> > that are dedicated to doing particular jobs.  These systems
> > typically don't get software updates as often as desktop
> > computers.
> >
> > Some systems that might be affected by the bug include:
> >
> >    - Airport arrival and departure time monitors
> >    - Building access control systems
> >    - Scheduling systems for transportation
> >    - Hotel wake-up systems
> >
> > I've attached a second message which details how the problem
> > also affects programs that use the MFC library.
> >
> > Here is a Microsoft FAQ about the bug:
> >
> >    http://msdn.microsoft.com/visualc/headlines/2001.asp
> >
> > My crystal ball is very fuzzy is if this bug is going
> > to cause any problems or not.
> >
> > Richard M. Smith
> > CTO, Privacy Foundation
> >
> > ========================================================================
> >
> > From  Thu Jan  7 08:35:45 1999
> > Date: Thu, 7 Jan 1999 10:18:33 +0100
> > From: Richard M. Smith
> > To: [email protected]
> > Subject: The Windows "April Fools 2001" bug
> >
> > January 7, 1999
> >
> > I have discovered a serious bug in Windows which will cause
> > many Windows applications to give the incorrect time starting
> > on April 1, 2001.  Although this new bug is not technically a Y2K
> > bug, it is similar because programs will fail on a particular
> > day in the next century.
> >
> > The bug causes Windows applications to give times which are off by one
> hour
> > even though the Windows clock shows the correct time.  The bug will
> continue
> > for one week until April 8th of 2001, when applications will again show
> the
> > correct time.  The bug occurs under Windows 95, 98, and NT.
> >
> > The problem is caused by the Visual C++ runtime library being
> > confused and assuming that daylight saving time doesn't start until
> > April the 8th.  In fact, daylight saving time starts on April 1 in
> > the year 2001.  The confusion appears to be caused by the fact that
> > April 1 falls on a Sunday in the year 2001.  The same bug occurs
> > in other years where April 1 also falls on a Sunday.  The last time this
> > happened was in 1990 and after 2001 it will occur again in 2007.  If
April
> 1
> > falls on any other day of the week, the bug does not occur.
> >
> > I reported the bug to Microsoft on Jan. 5th and got confirmation of
> > from them on the evening of Jan. 6th.  At the present time, Microsoft
told
> > me that they don't know when a fix will be available for the bug.
> >
> > For some applications, users should be able to fix the
> > problem by downloading a new version of the Visual C++ runtime
> > library DLL, MSVCRT.DLL.  Since the DLL now ships as part of Windows,
> > I would assume the fixed DLL will be available of the Windows Update
> > site.
> >
> > Unfortunately not all applications can be corrected with a new release
of
> > MSVCRT.DLL.  Any applications which statically links with the Visual C++
> > runtime will have to be fixed by the application vendor.  Users will
> > have to download the new releases of these kinds of applications.
> >
> > In my testing, I believe that the bug was introduced in version 4.1 of
> > Visual C++.  It is present in versions 4.2, 5.0, and 6.0 according to
> > my testing.
> >
> > At the present time, the bug has been confirmed only in North American
> > time zones.  Outside North America it is unknown if the same bug
> > exists or not.  If it does exists, it may occur on different days
> > and different years.
> >
> > I have written a small program in C that tests for the problem.
> > The source code for the test program is attached to the end of this
> > message.
> >
> > This "April Fools 2001" bug is present in the localtime() function, but
> > is probably also in other functions defined in the C language "time.h"
> > header file.
> >
> > Here is the output from the test program under Windows 98:
> >
> >    0x3AC796D0 = Sunday, April 1, 2001 -- 16:00:00 Eastern Standard
Time --
> > DOY=90
> >    0x3ACF2B70 = Saturday, April 7, 2001 -- 10:00:00 Eastern Standard
> Time --
> > DOY=96
> >    0x3AD06EE0 = Sunday, April 8, 2001 -- 10:00:00 Eastern Daylight
Time --
> > DOY=97
> >
> > The hours and time zones are incorrect for April 1st and April 7th.  The
> > time
> > on April 8th is correct.
> >
> > A bit of background.  In the United State and Canada, daylight
> > saving time (DST) always starts on the first Sunday in April and ends on
> > the last Sunday in October.  More information of the DST rules can
> > be found in the article at http://www.energy.ca.gov/daylightsaving.html.
> >
> > I am interested for folks to test for this same bug in other
> > operating systems and programming tools.  If you do run any tests,
> > I would appreciate in hearing the results via Email.  I know that
> > JavaScript has the bug in Netscape and Internet Explorer as well as
> > Win32 version of Perl.  Excel and Netscape Java Virtual Machine on
> > the other hand seem immune to the bug.
> >
> > Thanks,
> > Richard M. Smith
> >
>
> --------------------------------------------------------------------------
> --
> > ----
> >
> > //
> > // APRIL1.C -- Simple test program for the "April's Fools 2001" bug
> > //
> > // by Richard M. Smith
> > // copyright (C) 1999
> > //
> >
> > #include <stdio.h>
> > #include <time.h>
> > #include <string.h>
> >
> > #define SECS_PER_HOUR (60 * 60)
> > #define SECS_PER_DAY (24 * SECS_PER_HOUR)
> > #define SECS_PER_YEAR (365 * SECS_PER_DAY)
> >
> > #define START (3 * SECS_PER_DAY)
> > #define INCR (23 * SECS_PER_HOUR)
> > #define MAXTIMES ((0x80000000L - START) / INCR)
> >
> > void print_time(time_t mytime);
> >
> > char *month_tab[] =
> > {
> >         "January",
> >         "February",
> >         "March",
> >         "April",
> >         "May",
> >         "June",
> >         "July",
> >         "August",
> >         "September",
> >         "October",
> >         "November",
> >         "December"
> > };
> >
> > char *dow_tab[] =
> > {
> >         "Sunday",
> >         "Monday",
> >         "Tuesday",
> >         "Wednesday",
> >         "Thursday",
> >         "Friday",
> >         "Saturday"
> > };
> >
> > int main()
> >
> > {
> >
> >         print_time(0x3AC796D0);  // Sunday, April 1, 2001
> >         print_time(0x3ACF2B70);  // Saturday, April 7, 2001
> >         print_time(0x3AD06EE0);  // Sunday, April 8, 2001
> >         return 0;
> >
> > }
> >
> > //
> > // print_time -- print out a time_t value converted by localtime()
> > //
> >
> > void print_time(time_t mytime)
> >
> > {
> >
> >     char month[100];
> >     char dow[100];
> >     struct tm *tmp;
> >
> >     tmp = localtime(&mytime);
> >     if(tmp == NULL)
> >     {
> >         printf("0x%08lX = Invalid time\n", mytime);
> >         return;
> >     }
> >     if(tmp->tm_mon >= 0 && tmp->tm_mon <= 11)
> >         strcpy(month, month_tab[tmp->tm_mon]);
> >     else
> >         sprintf(month, "BadMonth=%d", tmp->tm_mon);
> >     if(tmp->tm_wday >= 0 && tmp->tm_wday <= 6)
> >         strcpy(dow, dow_tab[tmp->tm_wday]);
> >     else
> >         sprintf(month, "BadDOW=%d", tmp->tm_wday);
> >     printf("0x%08lX = %s, %s %d, %d -- %d:%02d:%02d %s -- DOY=%d\n",
> >            mytime, dow, month, tmp->tm_mday, tmp->tm_year + 1900,
> >            tmp->tm_hour, tmp->tm_min, tmp->tm_sec, _tzname[tmp->tm_isdst
> !=
> > 0],
> >            tmp->tm_yday);
> >     return;
> >
> > }
> >
> >
=========================================================================
> >
> > From: "Richard M. Smith"
> > Subject: MFC and the April Fools 2001 bug
> > Date: 18 Jan 1999 00:00:00 GMT
> > Newsgroups: microsoft.public.vc.mfc,microsoft.public.vc.language
> >
> > Hello,
> >
> > A couple of weeks ago I reported a serious bug to Microsoft
> > with the localtime() function of the C runtime library.  This
> > bug will cause many Windows applications to show the incorrect
> > time of day starting on April 1, 2001.  The bug will last for one
> > week.  The bug is due to the Visual C++ runtime library being confused
> > about the start date for daylight saving time.  Microsoft has
> > confirmed the bug and is currently working on a fix.
> >
> > Today I did more research on the bug and found that bug is also
> > present in the MFC library.  In particular, the two MFC classes
> > for dealing with times and dates, CTime and COleDateTime,  both
> > have the bug.  The reason that both classes have the bug because
> > they call the broken localtime() function as well as mktime()
> > which I discovered today also has the bug.
> >
> > I located the April Fools 2001 bug in MFC by first searching
> > the MFC source code for calls to localtime() and mktime().  I then
> > confirmed these bugs by building a short C++ test program that uses
> > CTime and ColeDateTime classes.  This test program displayed the
> > wrong times when I moved my Windows clock forward to April 1, 2001.
> >
> > Here are the member functions of MFC which have the "April Fools
> > 2001" bug:
> >
> >    CTime::CTime
> >    CTime::GetCurrentTime
> >    CTime::GetLocalTm
> >    CTime::GetHour
> >    CTime::GetDay
> >    CTime::GetDayOfWeek
> >    CTime::Format
> >
> >    COleDateTime::COleDateTime        (with a time_t argument only)
> >    COleDateTime::GetCurrentTime
> >
> > The following MFC classes also make use of CTime class so they will
> > likely hit the "April Fools 2001" bug when dealing with times and dates:
> >
> >    CTimeSpan
> >    CFileFind
> >    CFile
> >    CGopherFileFind
> >    COleStreamFile
> >    CDateTimeCtrl
> >    CMonthCalCtrl
> >
> > The C runtime functions with the bug are:
> >
> >    ctime
> >    localtime
> >    mktime
> >    _strtime
> >    _strdate
> >
> > Microsoft has created a Web page for news about the April Fools 2001
bug.
> > The URL of the page is:
> >
> >     http://msdn.microsoft.com/visualc/headlines/2001.asp
> >
> > Richard M. Smith
>
>
>
>
============================================================================
====
>      To unsubscribe from this mailing list, please see the instructions at
>                http://www.checkpoint.com/services/mailing.html
>
============================================================================
====
>


================================================================================
     To unsubscribe from this mailing list, please see the instructions at
               http://www.checkpoint.com/services/mailing.html
================================================================================



 
----------------------------------

ABOUT SERVICES PRODUCTS TRAINING CONTACT US SEARCH SUPPORT SITE MAP LEGAL
   All contents © 2004 Network Presence, LLC. All rights reserved.