提交 e48fbb69 编写于 作者: H Heiko Carstens

[CVE-2009-0029] System call wrappers part 24

Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
上级 5a8a82b1
...@@ -309,7 +309,7 @@ static inline int msg_security(struct kern_ipc_perm *ipcp, int msgflg) ...@@ -309,7 +309,7 @@ static inline int msg_security(struct kern_ipc_perm *ipcp, int msgflg)
return security_msg_queue_associate(msq, msgflg); 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_namespace *ns;
struct ipc_ops msg_ops; struct ipc_ops msg_ops;
...@@ -466,7 +466,7 @@ static int msgctl_down(struct ipc_namespace *ns, int msqid, int cmd, ...@@ -466,7 +466,7 @@ static int msgctl_down(struct ipc_namespace *ns, int msqid, int cmd,
return err; 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; struct msg_queue *msq;
int err, version; int err, version;
...@@ -723,8 +723,8 @@ long do_msgsnd(int msqid, long mtype, void __user *mtext, ...@@ -723,8 +723,8 @@ long do_msgsnd(int msqid, long mtype, void __user *mtext,
return err; return err;
} }
asmlinkage long SYSCALL_DEFINE4(msgsnd, int, msqid, struct msgbuf __user *, msgp, size_t, msgsz,
sys_msgsnd(int msqid, struct msgbuf __user *msgp, size_t msgsz, int msgflg) int, msgflg)
{ {
long mtype; long mtype;
...@@ -904,8 +904,8 @@ long do_msgrcv(int msqid, long *pmtype, void __user *mtext, ...@@ -904,8 +904,8 @@ long do_msgrcv(int msqid, long *pmtype, void __user *mtext,
return msgsz; return msgsz;
} }
asmlinkage long sys_msgrcv(int msqid, struct msgbuf __user *msgp, size_t msgsz, SYSCALL_DEFINE5(msgrcv, int, msqid, struct msgbuf __user *, msgp, size_t, msgsz,
long msgtyp, int msgflg) long, msgtyp, int, msgflg)
{ {
long err, mtype; long err, mtype;
......
...@@ -1395,7 +1395,7 @@ EXPORT_SYMBOL(in_egroup_p); ...@@ -1395,7 +1395,7 @@ EXPORT_SYMBOL(in_egroup_p);
DECLARE_RWSEM(uts_sem); DECLARE_RWSEM(uts_sem);
asmlinkage long sys_newuname(struct new_utsname __user * name) SYSCALL_DEFINE1(newuname, struct new_utsname __user *, name)
{ {
int errno = 0; int errno = 0;
...@@ -1478,7 +1478,7 @@ SYSCALL_DEFINE2(setdomainname, char __user *, name, int, len) ...@@ -1478,7 +1478,7 @@ SYSCALL_DEFINE2(setdomainname, char __user *, name, int, len)
return errno; 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) if (resource >= RLIM_NLIMITS)
return -EINVAL; return -EINVAL;
...@@ -1497,7 +1497,8 @@ asmlinkage long sys_getrlimit(unsigned int resource, struct rlimit __user *rlim) ...@@ -1497,7 +1497,8 @@ asmlinkage long sys_getrlimit(unsigned int resource, struct rlimit __user *rlim)
* Back compatibility for getrlimit. Needed for some apps. * 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; struct rlimit x;
if (resource >= RLIM_NLIMITS) if (resource >= RLIM_NLIMITS)
...@@ -1515,7 +1516,7 @@ asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *r ...@@ -1515,7 +1516,7 @@ asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *r
#endif #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; struct rlimit new_rlim, *old_rlim;
int retval; int retval;
...@@ -1688,7 +1689,7 @@ int getrusage(struct task_struct *p, int who, struct rusage __user *ru) ...@@ -1688,7 +1689,7 @@ int getrusage(struct task_struct *p, int who, struct rusage __user *ru)
return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0; 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 && if (who != RUSAGE_SELF && who != RUSAGE_CHILDREN &&
who != RUSAGE_THREAD) who != RUSAGE_THREAD)
...@@ -1696,7 +1697,7 @@ asmlinkage long sys_getrusage(int who, struct rusage __user *ru) ...@@ -1696,7 +1697,7 @@ asmlinkage long sys_getrusage(int who, struct rusage __user *ru)
return getrusage(current, who, ru); return getrusage(current, who, ru);
} }
asmlinkage long sys_umask(int mask) SYSCALL_DEFINE1(umask, int, mask)
{ {
mask = xchg(&current->fs->umask, mask & S_IRWXUGO); mask = xchg(&current->fs->umask, mask & S_IRWXUGO);
return mask; return mask;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册