linux-user: fix incorrect msg_l[sr]pid members of target_msqid_ds
The members are declared as __kernel_pid_t in Linux UAPI headers. Analogous members in struct target_shmid_ds (shm_[cl]pid) are also declared as abi_int. Cc: qemu-stable@nongnu.org Fixes: 1c54ff97bbde ("linux-user: fix and cleanup IPCOP_msg* ipc calls handling") Signed-off-by: no92 <leo@managarm.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com> Signed-off-by: Helge Deller <deller@gmx.de>
no92 committed
Jul 24, 2026 at 18:01 UTC
518a4aa01b88ff814dbf8668016f3ec910426283
1 file changed
+6
-6
linux-user/syscall.c
+6
-6
@@ -4228,8 +4228,8 @@ struct target_msqid_ds
4228
abi_ulong __msg_cbytes;
4229
abi_ulong msg_qnum;
4230
abi_ulong msg_qbytes;
4231
- abi_ulong msg_lspid;
4232
- abi_ulong msg_lrpid;
4231
+ abi_int msg_lspid;
4232
+ abi_int msg_lrpid;
4233
abi_ulong __unused4;
4234
abi_ulong __unused5;
4235
};
@@ -4249,8 +4249,8 @@ static inline abi_long target_to_host_msqid_ds(struct msqid_ds *host_md,
4249
host_md->__msg_cbytes = tswapal(target_md->__msg_cbytes);
4250
host_md->msg_qnum = tswapal(target_md->msg_qnum);
4251
host_md->msg_qbytes = tswapal(target_md->msg_qbytes);
4252
- host_md->msg_lspid = tswapal(target_md->msg_lspid);
4253
- host_md->msg_lrpid = tswapal(target_md->msg_lrpid);
4252
+ host_md->msg_lspid = tswap32(target_md->msg_lspid);
4253
+ host_md->msg_lrpid = tswap32(target_md->msg_lrpid);
4254
unlock_user_struct(target_md, target_addr, 0);
4255
return 0;
4256
}
@@ -4270,8 +4270,8 @@ static inline abi_long host_to_target_msqid_ds(abi_ulong target_addr,
4270
target_md->__msg_cbytes = tswapal(host_md->__msg_cbytes);
4271
target_md->msg_qnum = tswapal(host_md->msg_qnum);
4272
target_md->msg_qbytes = tswapal(host_md->msg_qbytes);
4273
- target_md->msg_lspid = tswapal(host_md->msg_lspid);
4274
- target_md->msg_lrpid = tswapal(host_md->msg_lrpid);
4273
+ target_md->msg_lspid = tswap32(host_md->msg_lspid);
4274
+ target_md->msg_lrpid = tswap32(host_md->msg_lrpid);
4275
unlock_user_struct(target_md, target_addr, 1);
4276
return 0;
4277
}