diff options
Diffstat (limited to 'ipc/compat.c')
| -rw-r--r-- | ipc/compat.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/ipc/compat.c b/ipc/compat.c index 9dc2c7d3c9e6..845a28738d3a 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) | |||
| 241 | struct semid64_ds __user *up64; | 241 | struct semid64_ds __user *up64; |
| 242 | int version = compat_ipc_parse_version(&third); | 242 | int version = compat_ipc_parse_version(&third); |
| 243 | 243 | ||
| 244 | memset(&s64, 0, sizeof(s64)); | ||
| 245 | |||
| 244 | if (!uptr) | 246 | if (!uptr) |
| 245 | return -EINVAL; | 247 | return -EINVAL; |
| 246 | if (get_user(pad, (u32 __user *) uptr)) | 248 | if (get_user(pad, (u32 __user *) uptr)) |
| @@ -421,6 +423,8 @@ long compat_sys_msgctl(int first, int second, void __user *uptr) | |||
| 421 | int version = compat_ipc_parse_version(&second); | 423 | int version = compat_ipc_parse_version(&second); |
| 422 | void __user *p; | 424 | void __user *p; |
| 423 | 425 | ||
| 426 | memset(&m64, 0, sizeof(m64)); | ||
| 427 | |||
| 424 | switch (second & (~IPC_64)) { | 428 | switch (second & (~IPC_64)) { |
| 425 | case IPC_INFO: | 429 | case IPC_INFO: |
| 426 | case IPC_RMID: | 430 | case IPC_RMID: |
| @@ -594,6 +598,8 @@ long compat_sys_shmctl(int first, int second, void __user *uptr) | |||
| 594 | int err, err2; | 598 | int err, err2; |
| 595 | int version = compat_ipc_parse_version(&second); | 599 | int version = compat_ipc_parse_version(&second); |
| 596 | 600 | ||
| 601 | memset(&s64, 0, sizeof(s64)); | ||
| 602 | |||
| 597 | switch (second & (~IPC_64)) { | 603 | switch (second & (~IPC_64)) { |
| 598 | case IPC_RMID: | 604 | case IPC_RMID: |
| 599 | case SHM_LOCK: | 605 | case SHM_LOCK: |
