Subject: Re: standards/21722: ISO-C conforming use of struct tm can crash
To: Simon Burge <simonb@wasabisystems.com>
From: Richard Earnshaw <rearnsha@arm.com>
List: netbsd-bugs
Date: 05/30/2003 15:28:42
> One `fix' would be to ignore (struct tm)->tm_zone when processing 'Z'
> (ie, just remove the #ifdef TM_ZONE/#endif block in strftime.c) and use
> only tzname[]. I think we can also use the timezone variable for 'z'
> as well.
>
> I don't know if this is the best way to fix this problem :-)
>
There's already code in strftime.c to handle the case when TM_ZONE is not
defined. Similarly for TM_GMTOFF. IMO we should be using that code
instead of assuming that the non-standard fields have been filled in.
Only interfaces that aren't part of ISO-C should be accessing the extended
fields (strftime may also do so, but only when processing a modifier that
isn't part of ISO C; neither %z nor %Z fall into that category).
R.