[tz] source code question regarding localtime.c PS
pgoyette at juniper.net
Wed Aug 7 13:38:04 UTC 2013
Since icycles and tcycles are of different types, there could
be some conversion involved at line 1295, with possible data
truncation. Thus, the comparisons on line 1296 might not be
(I think there were some recent comments about the possibility
of time_t being a non-integral type...)
From: tz-bounces at iana.org [mailto:tz-bounces at iana.org] On Behalf Of Alois Treindl
Sent: Wednesday, August 07, 2013 6:09 AM
To: tz at iana.org
Subject: [tz] source code question regarding localtime.c PS
In localtime.c, function localsub() are these three lines of code:
1295 icycles = tcycles;
1296 if (tcycles - icycles >= 1 || icycles - tcycles >= 1)
1297 return NULL;
I do not understand the reason why lines 1296 and 1297 exist.
icycles and tcycles are equal.
Their difference is always zero. Why test for it being not zero?
PS: the reason why I am asking:
I try to understand the source code of zdump.c
It calls localtime() frequently, and has some cryptic code which depends
on whether localtime() returned NULL.
Therefore, I try to understand the conditions under which localtime()
returns NULL. If that would be documented somewhee (I may have
overlooked it), it would be great, as it is rather hard to understand it
out of the terse code.
More information about the tz