Indeed, any positive random number in tm.tm_isdst will set DST in effect it
seems.

On my stripped down ARM system with no timezone information, it will simply
return -1.

On Tue, Apr 20, 2021 at 4:26 PM Michael Galassi <mich...@galassi.us> wrote:

> Somewhere lies a bug.  The following code snippet:
> #include <stdio.h>
> #include <time.h>
> int main()
> {
>     struct tm t;
>     time_t now = time((void*)0);
>     localtime_r(&now, &t);
>     t.tm_isdst = 1;
>     printf("%ld\n", mktime(&t));
>     t.tm_isdst = 0;
>     printf("%ld\n", mktime(&t));
>     t.tm_isdst = -1;
>     printf("%ld\n", mktime(&t));
> }
> Yields:
> 1618928503
> 1618932103
> 1618932103
> This is true on FreeBSD 13 and Ubuntu 18.04, both fully patched.
>
> -michael
>
> On Tue, Apr 20, 2021 at 7:04 AM Richard Cochran <richardcoch...@gmail.com>
> wrote:
>
>> On Tue, Apr 20, 2021 at 11:44:06AM +0200, Lars Munch wrote:
>> > tm_isdst needs to be initialized to make sure mktime does not fail
>> > or calculates the wrong time.
>>
>> No, take a look at the mktime(3) man page.  There you will read the
>> following.
>>
>>        The  mktime() function modifies the fields of the tm structure as
>> fol‐
>>        lows: tm_wday and tm_yday are set to values determined from  the
>> con‐
>>        tents  of  the  other  fields;  if structure members are outside
>> their
>>        valid interval, they will be normalized (so that, for example, 40
>> Oc‐
>>        tober  is changed into 9 November); tm_isdst is set (regardless of
>> its
>>        initial value) to a positive value or to 0, respectively, to
>> indicate
>>        whether DST is or is not in effect at the specified time.
>>
>> Thanks,
>> Richard
>>
>>
>> _______________________________________________
>> Linuxptp-devel mailing list
>> Linuxptp-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/linuxptp-devel
>>
>
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to