diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2014-03-04 06:39:03 -0500 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2014-03-06 09:35:09 -0500 |
commit | 291fdb0bcebd5e8db6af767c1fdc522167dad73d (patch) | |
tree | 019dbcd82cdc4a2e9d6c2426f0c52b8c2eb945e0 | |
parent | c2e7c3d0ef0d1a3765792a35ae9e6f91a3025214 (diff) |
ipc/compat_sys_msgrcv: change msgtyp type from long to compat_long_t
Change the type of compat_sys_msgrcv's msgtyp parameter from long
to compat_long_t, since compat user space passes only a 32 bit signed
value.
Let the compat wrapper do proper sign extension to 64 bit of this
parameter.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
-rw-r--r-- | include/linux/compat.h | 2 | ||||
-rw-r--r-- | ipc/compat.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/compat.h b/include/linux/compat.h index 4c42df3fce37..179b1da9e19f 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
@@ -321,7 +321,7 @@ asmlinkage long compat_sys_semctl(int semid, int semnum, int cmd, int arg); | |||
321 | asmlinkage long compat_sys_msgsnd(int msqid, compat_uptr_t msgp, | 321 | asmlinkage long compat_sys_msgsnd(int msqid, compat_uptr_t msgp, |
322 | compat_ssize_t msgsz, int msgflg); | 322 | compat_ssize_t msgsz, int msgflg); |
323 | asmlinkage long compat_sys_msgrcv(int msqid, compat_uptr_t msgp, | 323 | asmlinkage long compat_sys_msgrcv(int msqid, compat_uptr_t msgp, |
324 | compat_ssize_t msgsz, long msgtyp, int msgflg); | 324 | compat_ssize_t msgsz, compat_long_t msgtyp, int msgflg); |
325 | long compat_sys_msgctl(int first, int second, void __user *uptr); | 325 | long compat_sys_msgctl(int first, int second, void __user *uptr); |
326 | long compat_sys_shmctl(int first, int second, void __user *uptr); | 326 | long compat_sys_shmctl(int first, int second, void __user *uptr); |
327 | long compat_sys_semtimedop(int semid, struct sembuf __user *tsems, | 327 | long compat_sys_semtimedop(int semid, struct sembuf __user *tsems, |
diff --git a/ipc/compat.c b/ipc/compat.c index f486b0096a67..e1f4ab65660c 100644 --- a/ipc/compat.c +++ b/ipc/compat.c | |||
@@ -430,9 +430,9 @@ COMPAT_SYSCALL_DEFINE4(msgsnd, int, msqid, compat_uptr_t, msgp, | |||
430 | } | 430 | } |
431 | 431 | ||
432 | COMPAT_SYSCALL_DEFINE5(msgrcv, int, msqid, compat_uptr_t, msgp, | 432 | COMPAT_SYSCALL_DEFINE5(msgrcv, int, msqid, compat_uptr_t, msgp, |
433 | compat_ssize_t, msgsz, long, msgtyp, int, msgflg) | 433 | compat_ssize_t, msgsz, compat_long_t, msgtyp, int, msgflg) |
434 | { | 434 | { |
435 | return do_msgrcv(msqid, compat_ptr(msgp), (ssize_t)msgsz, msgtyp, | 435 | return do_msgrcv(msqid, compat_ptr(msgp), (ssize_t)msgsz, (long)msgtyp, |
436 | msgflg, compat_do_msg_fill); | 436 | msgflg, compat_do_msg_fill); |
437 | } | 437 | } |
438 | 438 | ||