mktime bug?

Guido Flohr gufl0000 at
Thu May 13 00:35:29 UTC 1999


sorry, it's me again.  I have problems with this little piece of code:

bash$ cat >mktimetest <<EOF
#include <stdio.h>
#include <time.h>

int main ()
  struct tm tm;
  time_t secs;

  memset (&tm, 0, sizeof tm);
  tm.year = 99;
  tm.mon = 4;
  tm.mday = 13;
  secs = mktime (&tm);
  printf ("secs: %ld (%s)\n", secs, strerror (errno));
  return 0;
# make mktimetest
# TZ=CET-1CEST-2 ./mktimetest
secs: -1 (OK)

On installations where summertime applies during May mktime returns an
error here (happens somewhere in the function time2).  If I set

	tm.tm_isdst = -1;

before calling mktime() the function returns the correct time.

I have fixed that by inserting the line

	tmp->tm_isdst = -1;

in mktime() before time1() gets called but I'm not sure if this is the
right place to do that (or if this is correct at all).

Can you verify that behavior or have I messed up my sources?  If it is a
bug, how should it be fixed?


mailto:gufl0000 at

More information about the tz mailing list