Date: Fri, 25 May 2001 11:10:18 +0900 (JST) From: akr@m17n.org To: FreeBSD-gnats-submit@freebsd.org Subject: bin/27630: mktime problem. Message-ID: <20010525021018.01D54727@flux.etl.go.jp>
next in thread | raw e-mail | index | archive | help
>Number: 27630
>Category: bin
>Synopsis: mktime failure.
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu May 24 19:20:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Tanaka Akira
>Release: FreeBSD 4.2-RELEASE i386
>Organization:
m17n
>Environment:
FreeBSD flux 4.2-RELEASE FreeBSD 4.2-RELEASE #2: Fri Jan 12 22:55:02 JST 2001 akr@flux:/usr/src/sys/compile/AKR i386
>Description:
mktime(3) fails on some condition.
For example, TZ=Africa/Monrovia, 1972/05/01 00:44:30 cannot be converted to
time_t. Since this example is taken from `zdump -v Africa/Monrovia' and it
is after Epoch, there is no reason to fail.
Actually, I tested all time listed in `zdump -v' for each timezone in
/usr/share/zoneinfo and found many failures. Above failure is one of them.
>How-To-Repeat:
% cat tst.c
#include <stdio.h>
#include <time.h>
int main()
{
struct tm a;
time_t t;
a.tm_year = 1972 - 1900;
a.tm_mon = 5 - 1;
a.tm_mday = 1;
a.tm_hour = 0;
a.tm_min = 44;
a.tm_sec = 30;
a.tm_wday = 0;
a.tm_yday = 0;
a.tm_isdst = -1;
t = mktime(&a);
if (t == -1) {
perror("mktime");
exit(1);
}
printf("no problem\n");
return 0;
}
% gcc tst.c
% TZ=Africa/Monrovia ./a.out
mktime: Undefined error: 0
%
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010525021018.01D54727>
