From 69905110f5d840dbb0e0986f7eade8cfc9d3dafc Mon Sep 17 00:00:00 2001 From: Flavio Cruz Date: Sat, 30 Dec 2023 11:33:38 -0500 Subject: x86_64: utmp uses int32_t to store time so use a temporary variable Message-ID: --- utils/login.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'utils') diff --git a/utils/login.c b/utils/login.c index 3134c4aa..334941cf 100644 --- a/utils/login.c +++ b/utils/login.c @@ -157,12 +157,17 @@ static void add_utmp_entry (char *args, unsigned args_len, int inherit_host) { struct utmp utmp; + struct timeval current_time; char const *host = 0; long addr = 0; memset (&utmp, 0, sizeof(utmp)); - gettimeofday (&utmp.ut_tv, 0); + gettimeofday (¤t_time, NULL); + /* For x86_64, sizeof(utmp.ut_tv) != sizeof(struct timeval) */ + utmp.ut_tv.tv_sec = current_time.tv_sec; + utmp.ut_tv.tv_usec = current_time.tv_usec; + strncpy (utmp.ut_name, envz_get (args, args_len, "USER") ?: "", sizeof (utmp.ut_name)); -- cgit v1.2.3