X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;ds=sidebyside;f=ipc%2Fcompat.c;h=845a28738d3a824e5c7a4cd583c28c9d793467cf;hb=08c14071fda4e69abb9d5b1566651cd092b158d3;hp=9dc2c7d3c9e6de04732f79e113e73e1e6d52b368;hpb=e37c83c06c2690157a989df40dc99a6b61c9ea15;p=~andy%2Flinux diff --git a/ipc/compat.c b/ipc/compat.c index 9dc2c7d3c9e..845a28738d3 100644 --- a/ipc/compat.c +++ b/ipc/compat.c @@ -241,6 +241,8 @@ long compat_sys_semctl(int first, int second, int third, void __user *uptr) struct semid64_ds __user *up64; int version = compat_ipc_parse_version(&third); + memset(&s64, 0, sizeof(s64)); + if (!uptr) return -EINVAL; if (get_user(pad, (u32 __user *) uptr)) @@ -421,6 +423,8 @@ long compat_sys_msgctl(int first, int second, void __user *uptr) int version = compat_ipc_parse_version(&second); void __user *p; + memset(&m64, 0, sizeof(m64)); + switch (second & (~IPC_64)) { case IPC_INFO: case IPC_RMID: @@ -594,6 +598,8 @@ long compat_sys_shmctl(int first, int second, void __user *uptr) int err, err2; int version = compat_ipc_parse_version(&second); + memset(&s64, 0, sizeof(s64)); + switch (second & (~IPC_64)) { case IPC_RMID: case SHM_LOCK: