aboutsummaryrefslogtreecommitdiffstats
path: root/ipc/compat.c
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/compat.c')
-rw-r--r--ipc/compat.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/ipc/compat.c b/ipc/compat.c
index 892f6585dd60..f486b0096a67 100644
--- a/ipc/compat.c
+++ b/ipc/compat.c
@@ -197,7 +197,7 @@ static inline int __put_compat_ipc_perm(struct ipc64_perm *p,
197static inline int get_compat_semid64_ds(struct semid64_ds *s64, 197static inline int get_compat_semid64_ds(struct semid64_ds *s64,
198 struct compat_semid64_ds __user *up64) 198 struct compat_semid64_ds __user *up64)
199{ 199{
200 if (!access_ok (VERIFY_READ, up64, sizeof(*up64))) 200 if (!access_ok(VERIFY_READ, up64, sizeof(*up64)))
201 return -EFAULT; 201 return -EFAULT;
202 return __get_compat_ipc64_perm(&s64->sem_perm, &up64->sem_perm); 202 return __get_compat_ipc64_perm(&s64->sem_perm, &up64->sem_perm);
203} 203}
@@ -205,7 +205,7 @@ static inline int get_compat_semid64_ds(struct semid64_ds *s64,
205static inline int get_compat_semid_ds(struct semid64_ds *s, 205static inline int get_compat_semid_ds(struct semid64_ds *s,
206 struct compat_semid_ds __user *up) 206 struct compat_semid_ds __user *up)
207{ 207{
208 if (!access_ok (VERIFY_READ, up, sizeof(*up))) 208 if (!access_ok(VERIFY_READ, up, sizeof(*up)))
209 return -EFAULT; 209 return -EFAULT;
210 return __get_compat_ipc_perm(&s->sem_perm, &up->sem_perm); 210 return __get_compat_ipc_perm(&s->sem_perm, &up->sem_perm);
211} 211}
@@ -215,7 +215,7 @@ static inline int put_compat_semid64_ds(struct semid64_ds *s64,
215{ 215{
216 int err; 216 int err;
217 217
218 if (!access_ok (VERIFY_WRITE, up64, sizeof(*up64))) 218 if (!access_ok(VERIFY_WRITE, up64, sizeof(*up64)))
219 return -EFAULT; 219 return -EFAULT;
220 err = __put_compat_ipc64_perm(&s64->sem_perm, &up64->sem_perm); 220 err = __put_compat_ipc64_perm(&s64->sem_perm, &up64->sem_perm);
221 err |= __put_user(s64->sem_otime, &up64->sem_otime); 221 err |= __put_user(s64->sem_otime, &up64->sem_otime);
@@ -229,7 +229,7 @@ static inline int put_compat_semid_ds(struct semid64_ds *s,
229{ 229{
230 int err; 230 int err;
231 231
232 if (!access_ok (VERIFY_WRITE, up, sizeof(*up))) 232 if (!access_ok(VERIFY_WRITE, up, sizeof(*up)))
233 return -EFAULT; 233 return -EFAULT;
234 err = __put_compat_ipc_perm(&s->sem_perm, &up->sem_perm); 234 err = __put_compat_ipc_perm(&s->sem_perm, &up->sem_perm);
235 err |= __put_user(s->sem_otime, &up->sem_otime); 235 err |= __put_user(s->sem_otime, &up->sem_otime);
@@ -288,11 +288,11 @@ static long do_compat_semctl(int first, int second, int third, u32 pad)
288 break; 288 break;
289 289
290 case IPC_SET: 290 case IPC_SET:
291 if (version == IPC_64) { 291 if (version == IPC_64)
292 err = get_compat_semid64_ds(&s64, compat_ptr(pad)); 292 err = get_compat_semid64_ds(&s64, compat_ptr(pad));
293 } else { 293 else
294 err = get_compat_semid_ds(&s64, compat_ptr(pad)); 294 err = get_compat_semid_ds(&s64, compat_ptr(pad));
295 } 295
296 up64 = compat_alloc_user_space(sizeof(s64)); 296 up64 = compat_alloc_user_space(sizeof(s64));
297 if (copy_to_user(up64, &s64, sizeof(s64))) 297 if (copy_to_user(up64, &s64, sizeof(s64)))
298 err = -EFAULT; 298 err = -EFAULT;
@@ -376,12 +376,12 @@ COMPAT_SYSCALL_DEFINE6(ipc, u32, call, int, first, int, second,
376 struct compat_ipc_kludge ipck; 376 struct compat_ipc_kludge ipck;
377 if (!uptr) 377 if (!uptr)
378 return -EINVAL; 378 return -EINVAL;
379 if (copy_from_user (&ipck, uptr, sizeof(ipck))) 379 if (copy_from_user(&ipck, uptr, sizeof(ipck)))
380 return -EFAULT; 380 return -EFAULT;
381 uptr = compat_ptr(ipck.msgp); 381 uptr = compat_ptr(ipck.msgp);
382 fifth = ipck.msgtyp; 382 fifth = ipck.msgtyp;
383 } 383 }
384 return do_msgrcv(first, uptr, second, fifth, third, 384 return do_msgrcv(first, uptr, second, (s32)fifth, third,
385 compat_do_msg_fill); 385 compat_do_msg_fill);
386 } 386 }
387 case MSGGET: 387 case MSGGET:
@@ -515,11 +515,11 @@ long compat_sys_msgctl(int first, int second, void __user *uptr)
515 break; 515 break;
516 516
517 case IPC_SET: 517 case IPC_SET:
518 if (version == IPC_64) { 518 if (version == IPC_64)
519 err = get_compat_msqid64(&m64, uptr); 519 err = get_compat_msqid64(&m64, uptr);
520 } else { 520 else
521 err = get_compat_msqid(&m64, uptr); 521 err = get_compat_msqid(&m64, uptr);
522 } 522
523 if (err) 523 if (err)
524 break; 524 break;
525 p = compat_alloc_user_space(sizeof(m64)); 525 p = compat_alloc_user_space(sizeof(m64));
@@ -702,11 +702,11 @@ long compat_sys_shmctl(int first, int second, void __user *uptr)
702 702
703 703
704 case IPC_SET: 704 case IPC_SET:
705 if (version == IPC_64) { 705 if (version == IPC_64)
706 err = get_compat_shmid64_ds(&s64, uptr); 706 err = get_compat_shmid64_ds(&s64, uptr);
707 } else { 707 else
708 err = get_compat_shmid_ds(&s64, uptr); 708 err = get_compat_shmid_ds(&s64, uptr);
709 } 709
710 if (err) 710 if (err)
711 break; 711 break;
712 p = compat_alloc_user_space(sizeof(s64)); 712 p = compat_alloc_user_space(sizeof(s64));