diff options
author | Lukasz Majewski <lukma@denx.de> | 2020-03-16 08:31:41 +0100 |
---|---|---|
committer | Lukasz Majewski <lukma@denx.de> | 2020-05-20 16:45:16 +0200 |
commit | e9698175b0b60407db1e89bcf29437ab224bca0b (patch) | |
tree | cb1b6779101327e185e1868b5200cc8a06e98c0b /login | |
parent | 5b9b177bf62bcdaf42255f88ad9ebf090528c5e1 (diff) | |
download | glibc-e9698175b0b60407db1e89bcf29437ab224bca0b.zip glibc-e9698175b0b60407db1e89bcf29437ab224bca0b.tar.gz glibc-e9698175b0b60407db1e89bcf29437ab224bca0b.tar.bz2 |
y2038: Replace __clock_gettime with __clock_gettime64
The __clock_gettime internal function is not supporting 64 bit time on
architectures with __WORDSIZE == 32 and __TIMESIZE != 64 (like e.g. ARM 32
bit).
The __clock_gettime64 function shall be used instead in the glibc itself as
it supports 64 bit time on those systems.
This patch does not bring any changes to systems with __WORDSIZE == 64 as
for them the __clock_gettime64 is aliased to __clock_gettime (in
./include/time.h).
Diffstat (limited to 'login')
-rw-r--r-- | login/logout.c | 4 | ||||
-rw-r--r-- | login/logwtmp.c | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/login/logout.c b/login/logout.c index 7653fe8..091312e 100644 --- a/login/logout.c +++ b/login/logout.c @@ -47,8 +47,8 @@ logout (const char *line) memset (ut->ut_name, '\0', sizeof ut->ut_name); memset (ut->ut_host, '\0', sizeof ut->ut_host); - struct timespec ts; - __clock_gettime (CLOCK_REALTIME, &ts); + struct __timespec64 ts; + __clock_gettime64 (CLOCK_REALTIME, &ts); TIMESPEC_TO_TIMEVAL (&ut->ut_tv, &ts); ut->ut_type = DEAD_PROCESS; diff --git a/login/logwtmp.c b/login/logwtmp.c index 90406ac..050219c 100644 --- a/login/logwtmp.c +++ b/login/logwtmp.c @@ -21,6 +21,7 @@ #include <time.h> #include <unistd.h> #include <utmp.h> +#include <struct___timespec64.h> void @@ -36,8 +37,8 @@ logwtmp (const char *line, const char *name, const char *host) strncpy (ut.ut_name, name, sizeof ut.ut_name); strncpy (ut.ut_host, host, sizeof ut.ut_host); - struct timespec ts; - __clock_gettime (CLOCK_REALTIME, &ts); + struct __timespec64 ts; + __clock_gettime64 (CLOCK_REALTIME, &ts); TIMESPEC_TO_TIMEVAL (&ut.ut_tv, &ts); updwtmp (_PATH_WTMP, &ut); |