aboutsummaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2017-09-18 12:47:38 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2017-09-20 23:27:48 -0400
commit58aff0af757356065f33290d96a9cd46dfbcae88 (patch)
treee4bd9e751d8a67be3ba510d52f9decf5e7d7a2d3 /ipc
parenta90bcb86ae700c12432446c4aa1819e7b8e172ec (diff)
ipc/shm: Fix order of parameters when calling copy_compat_shmid_to_user
Commit 553f770ef71b ("ipc: move compat shmctl to native") moved the compat IPC syscall handling into ipc/shm.c and refactored the struct accessors in the process. Unfortunately, the call to copy_compat_shmid_to_user when handling a compat {IPC,SHM}_STAT command gets the arguments the wrong way round, passing a kernel stack address as the user buffer (destination) and the user buffer as the kernel stack address (source). This patch fixes the parameter ordering so the buffers are accessed correctly. Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'ipc')
-rw-r--r--ipc/shm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ipc/shm.c b/ipc/shm.c
index 1b3adfe3c60e..1e2b1692ba2c 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -1237,7 +1237,7 @@ COMPAT_SYSCALL_DEFINE3(shmctl, int, shmid, int, cmd, void __user *, uptr)
1237 err = shmctl_stat(ns, shmid, cmd, &sem64); 1237 err = shmctl_stat(ns, shmid, cmd, &sem64);
1238 if (err < 0) 1238 if (err < 0)
1239 return err; 1239 return err;
1240 if (copy_compat_shmid_to_user(&sem64, uptr, version)) 1240 if (copy_compat_shmid_to_user(uptr, &sem64, version))
1241 err = -EFAULT; 1241 err = -EFAULT;
1242 return err; 1242 return err;
1243 1243