Bug 14606 - lost 1h in gmtime, ctime extracted date
Summary: lost 1h in gmtime, ctime extracted date
Status: RESOLVED INVALID
Alias: None
Product: glibc
Classification: Unclassified
Component: libc (show other bugs)
Version: 2.11
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-22 08:54 UTC by Eugene Kopyshev
Modified: 2014-06-17 04:23 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:
fweimer: security-


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eugene Kopyshev 2012-09-22 08:54:40 UTC
Every year, random day in Oct, ctime resolves two different epoch times into the same string date. tz not set, not affected, not makes an influence. For example:

1351385541 2012-10-28 1:52:21 Sun Oct 28 01:52:21 2012
1351389141 2012-10-28 1:52:21 Sun Oct 28 01:52:21 2012

A code to get output as above:

#include<time.h>
#include<stdio.h>

int main()
{
time_t t;
struct tm *tm;

	t=1351385541;
	tm=gmtime(&t);
	printf( "%lu %d-%d-%d %d:%d:%d %s", t, tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, ctime(&t) );
	t=1351389141;
	tm=gmtime(&t);
	printf( "%lu %d-%d-%d %d:%d:%d %s", t, tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, ctime(&t) );
}
Comment 1 Andreas Schwab 2012-09-22 09:26:58 UTC
The dates are in different time zones, crossing a DST changeover.  See tm_isdst.
Comment 2 Eugene Kopyshev 2012-09-22 10:09:10 UTC
Hi Andreas,

Right, but with tm.tm_isdst=0 it works for all "modern" dates and fails
somewhen before the 19xx. Changeover did not exist then?

57718800 Sun Oct 31 02:00:00 1971
57722400 Sun Oct 31 02:00:00 1971

With tm_isdst=-1 it does not work for any year. In case with http server
application is makes tricky to cover past dates... ok, nobody needs it,
hopefully.

Thanka s lot!

2012/9/22 schwab@linux-m68k.org <sourceware-bugzilla@sourceware.org>

>
> http://sourceware.org/bugzilla/show_bug.cgi?id=14606
>
> Andreas Schwab <schwab@linux-m68k.org> changed:
>
>            What    |Removed                     |Added
>
> ----------------------------------------------------------------------------
>              Status|NEW                         |RESOLVED
>          Resolution|                            |INVALID
>
> --- Comment #1 from Andreas Schwab <schwab@linux-m68k.org> 2012-09-22
> 09:26:58 UTC ---
> The dates are in different time zones, crossing a DST changeover.  See
> tm_isdst.
>
> --
> Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You reported the bug.
>