Branch: refs/heads/main
Home:
https://github.com/kronosnet/kronosnet
Commit: 515f8d908083d1e83951442f0ccf40cdbfbde0e2
https://github.com/kronosnet/kronosnet/commit/515f8d908083d1e83951442f0ccf4…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2024-07-31 (Wed, 31 Jul 2024)
Changed paths:
M libknet/links.c
Log Message:
-----------
Convert time_t to unsigned long long before formatting (#431)
Conventionally it's signed long under the GNU C library, which is 32
bits on 32-bit architectures, but Glibc provides the __TIME_BITS==64
option, which makes it signed long long instead (64 bits) and makes no
difference on 64-bit architectures [1]. Since the ping_interval and
pong_timeout members of struct knet_link are unsigned, we can make
this conversion safe by rejecting negative values as well (besides
zero). In the end this enables using the uniform %llu conversion
specifier across all supported architectures. This got exposed by
Debian recently transitioning to 64-bit time_t [2].
[1]
https://sourceware.org/glibc/wiki/Y2038ProofnessDesign
[2]
https://wiki.debian.org/ReleaseGoals/64bit-time
Signed-off-by: Ferenc Wágner <wferi(a)debian.org>
Co-authored-by: Ferenc Wágner <wferi(a)debian.org>
To unsubscribe from these emails, change your notification settings at
https://github.com/kronosnet/kronosnet/settings/notifications