git: cc77811bf02c - stable/14 - sysvipc: Fix 32-bit compat on !i386

From: Brooks Davis <brooks_at_FreeBSD.org>
Date: Wed, 13 Dec 2023 23:23:00 UTC
The branch stable/14 has been updated by brooks:

URL: https://cgit.FreeBSD.org/src/commit/?id=cc77811bf02c4a32c5303fc9de1e4596bbbc94e1

commit cc77811bf02c4a32c5303fc9de1e4596bbbc94e1
Author:     Brooks Davis <brooks@FreeBSD.org>
AuthorDate: 2023-12-01 20:48:29 +0000
Commit:     Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2023-12-13 23:10:53 +0000

    sysvipc: Fix 32-bit compat on !i386
    
    The various time fields are time_t's which are only 32-bit on i386.
    
    Fixing the old versions is probably of little use, but it's more correct
    and in theory there could be powerpc binaries from 6.x.
    
    PR:             240035
    Fixes:          fbb273bc05bef Properly support for FreeBSD 4 32bit System V shared memory.
    Reviewed by:    kib
    Differential Revision:  https://reviews.freebsd.org/D42870
    
    (cherry picked from commit 957f014dc076a7f74ed0c8c8699e6f39b55785e7)
---
 sys/compat/freebsd32/freebsd32_ipc.h | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/sys/compat/freebsd32/freebsd32_ipc.h b/sys/compat/freebsd32/freebsd32_ipc.h
index e74f4659247f..4ff8af359428 100644
--- a/sys/compat/freebsd32/freebsd32_ipc.h
+++ b/sys/compat/freebsd32/freebsd32_ipc.h
@@ -43,8 +43,8 @@ struct semid_ds32 {
 	struct ipc_perm32 sem_perm;
 	uint32_t	__sem_base;
 	unsigned short	sem_nsems;
-	int32_t		sem_otime;
-	int32_t		sem_ctime;
+	time32_t	sem_otime;
+	time32_t	sem_ctime;
 };
 
 #ifdef _KERNEL
@@ -73,9 +73,9 @@ struct msqid_ds32 {
 	uint32_t	msg_qbytes;
 	pid_t		msg_lspid;
 	pid_t		msg_lrpid;
-	int32_t		msg_stime;
-	int32_t		msg_rtime;
-	int32_t		msg_ctime;
+	time32_t	msg_stime;
+	time32_t	msg_rtime;
+	time32_t	msg_ctime;
 };
 
 #ifdef _KERNEL
@@ -95,9 +95,9 @@ struct shmid_ds32 {
 	pid_t		shm_lpid;
 	pid_t		shm_cpid;
 	unsigned int	shm_nattch;
-	int32_t		shm_atime;
-	int32_t		shm_dtime;
-	int32_t		shm_ctime;
+	time32_t	shm_atime;
+	time32_t	shm_dtime;
+	time32_t	shm_ctime;
 };
 
 #ifdef _KERNEL
@@ -142,9 +142,9 @@ struct semid_ds_old32 {
 	struct ipc_perm_old32 sem_perm;
 	uint32_t	__sem_base;
 	unsigned short	sem_nsems;
-	int32_t		sem_otime;
+	time32_t	sem_otime;
 	int32_t		sem_pad1;
-	int32_t		sem_ctime;
+	time32_t	sem_ctime;
 	int32_t		sem_pad2;
 	int32_t		sem_pad3[4];
 };
@@ -158,11 +158,11 @@ struct msqid_ds_old32 {
 	uint32_t	msg_qbytes;
 	pid_t		msg_lspid;
 	pid_t		msg_lrpid;
-	int32_t		msg_stime;
+	time32_t	msg_stime;
 	int32_t		msg_pad1;
-	int32_t		msg_rtime;
+	time32_t	msg_rtime;
 	int32_t		msg_pad2;
-	int32_t		msg_ctime;
+	time32_t	msg_ctime;
 	int32_t		msg_pad3;
 	int32_t		msg_pad4[4];
 };
@@ -173,9 +173,9 @@ struct shmid_ds_old32 {
 	pid_t		shm_lpid;
 	pid_t		shm_cpid;
 	int16_t		shm_nattch;
-	int32_t		shm_atime;
-	int32_t		shm_dtime;
-	int32_t		shm_ctime;
+	time32_t	shm_atime;
+	time32_t	shm_dtime;
+	time32_t	shm_ctime;
 	uint32_t	shm_internal;
 };