about summary refs log tree commit diff
path: root/bits
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2024-04-19 14:38:17 +0200
committerFlorian Weimer <fweimer@redhat.com>2024-04-19 14:38:17 +0200
commit5361ad3910c257bc327567be76fde532ed238e42 (patch)
tree76cf92324c5eecbd0dfb9ebf8940a94aa85d2386 /bits
parent9abdae94c7454c45e02e97e4ed1eb1b1915d13d8 (diff)
downloadglibc-5361ad3910c257bc327567be76fde532ed238e42.tar.gz
glibc-5361ad3910c257bc327567be76fde532ed238e42.tar.xz
glibc-5361ad3910c257bc327567be76fde532ed238e42.zip
login: Use unsigned 32-bit types for seconds-since-epoch
These fields store timestamps when the system was running.  No Linux
systems existed before 1970, so these values are unused.  Switching
to unsigned types allows continued use of the existing struct layouts
beyond the year 2038.

The intent is to give distributions more time to switch to improved
interfaces that also avoid locking/data corruption issues.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
Diffstat (limited to 'bits')
-rw-r--r--bits/utmp.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/bits/utmp.h b/bits/utmp.h
index f2d1c13d8c..27cb536800 100644
--- a/bits/utmp.h
+++ b/bits/utmp.h
@@ -36,7 +36,7 @@
 struct lastlog
   {
 #if __WORDSIZE_TIME64_COMPAT32
-    int32_t ll_time;
+    __uint32_t ll_time;
 #else
     __time_t ll_time;
 #endif
@@ -76,7 +76,7 @@ struct utmp
   int32_t ut_session;		/* Session ID, used for windowing.  */
   struct
   {
-    int32_t tv_sec;		/* Seconds.  */
+    __uint32_t tv_sec;		/* Seconds.  */
     int32_t tv_usec;		/* Microseconds.  */
   } ut_tv;			/* Time entry was made.  */
 #else