| From e48fbb699f82ef1e80bd7126046394d2dc9ca7e6 Mon Sep 17 00:00:00 2001 |
| From: Heiko Carstens <heiko.carstens@de.ibm.com> |
| Date: Wed, 14 Jan 2009 14:14:26 +0100 |
| Subject: [PATCH 34/44] [CVE-2009-0029] System call wrappers part 24 |
| |
| From: Heiko Carstens <heiko.carstens@de.ibm.com> |
| |
| commit e48fbb699f82ef1e80bd7126046394d2dc9ca7e6 upstream. |
| |
| Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| --- |
| ipc/msg.c | 12 ++++++------ |
| kernel/sys.c | 13 +++++++------ |
| 2 files changed, 13 insertions(+), 12 deletions(-) |
| |
| --- a/ipc/msg.c |
| +++ b/ipc/msg.c |
| @@ -309,7 +309,7 @@ static inline int msg_security(struct ke |
| return security_msg_queue_associate(msq, msgflg); |
| } |
| |
| -asmlinkage long sys_msgget(key_t key, int msgflg) |
| +SYSCALL_DEFINE2(msgget, key_t, key, int, msgflg) |
| { |
| struct ipc_namespace *ns; |
| struct ipc_ops msg_ops; |
| @@ -466,7 +466,7 @@ out_up: |
| return err; |
| } |
| |
| -asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *buf) |
| +SYSCALL_DEFINE3(msgctl, int, msqid, int, cmd, struct msqid_ds __user *, buf) |
| { |
| struct msg_queue *msq; |
| int err, version; |
| @@ -723,8 +723,8 @@ out_free: |
| return err; |
| } |
| |
| -asmlinkage long |
| -sys_msgsnd(int msqid, struct msgbuf __user *msgp, size_t msgsz, int msgflg) |
| +SYSCALL_DEFINE4(msgsnd, int, msqid, struct msgbuf __user *, msgp, size_t, msgsz, |
| + int, msgflg) |
| { |
| long mtype; |
| |
| @@ -904,8 +904,8 @@ out_unlock: |
| return msgsz; |
| } |
| |
| -asmlinkage long sys_msgrcv(int msqid, struct msgbuf __user *msgp, size_t msgsz, |
| - long msgtyp, int msgflg) |
| +SYSCALL_DEFINE5(msgrcv, int, msqid, struct msgbuf __user *, msgp, size_t, msgsz, |
| + long, msgtyp, int, msgflg) |
| { |
| long err, mtype; |
| |
| --- a/kernel/sys.c |
| +++ b/kernel/sys.c |
| @@ -1317,7 +1317,7 @@ EXPORT_SYMBOL(in_egroup_p); |
| |
| DECLARE_RWSEM(uts_sem); |
| |
| -asmlinkage long sys_newuname(struct new_utsname __user * name) |
| +SYSCALL_DEFINE1(newuname, struct new_utsname __user *, name) |
| { |
| int errno = 0; |
| |
| @@ -1400,7 +1400,7 @@ SYSCALL_DEFINE2(setdomainname, char __us |
| return errno; |
| } |
| |
| -asmlinkage long sys_getrlimit(unsigned int resource, struct rlimit __user *rlim) |
| +SYSCALL_DEFINE2(getrlimit, unsigned int, resource, struct rlimit __user *, rlim) |
| { |
| if (resource >= RLIM_NLIMITS) |
| return -EINVAL; |
| @@ -1419,7 +1419,8 @@ asmlinkage long sys_getrlimit(unsigned i |
| * Back compatibility for getrlimit. Needed for some apps. |
| */ |
| |
| -asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *rlim) |
| +SYSCALL_DEFINE2(old_getrlimit, unsigned int, resource, |
| + struct rlimit __user *, rlim) |
| { |
| struct rlimit x; |
| if (resource >= RLIM_NLIMITS) |
| @@ -1437,7 +1438,7 @@ asmlinkage long sys_old_getrlimit(unsign |
| |
| #endif |
| |
| -asmlinkage long sys_setrlimit(unsigned int resource, struct rlimit __user *rlim) |
| +SYSCALL_DEFINE2(setrlimit, unsigned int, resource, struct rlimit __user *, rlim) |
| { |
| struct rlimit new_rlim, *old_rlim; |
| int retval; |
| @@ -1608,7 +1609,7 @@ int getrusage(struct task_struct *p, int |
| return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0; |
| } |
| |
| -asmlinkage long sys_getrusage(int who, struct rusage __user *ru) |
| +SYSCALL_DEFINE2(getrusage, int, who, struct rusage __user *, ru) |
| { |
| if (who != RUSAGE_SELF && who != RUSAGE_CHILDREN && |
| who != RUSAGE_THREAD) |
| @@ -1616,7 +1617,7 @@ asmlinkage long sys_getrusage(int who, s |
| return getrusage(current, who, ru); |
| } |
| |
| -asmlinkage long sys_umask(int mask) |
| +SYSCALL_DEFINE1(umask, int, mask) |
| { |
| mask = xchg(¤t->fs->umask, mask & S_IRWXUGO); |
| return mask; |