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

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

Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
上级 002c8976
...@@ -517,7 +517,7 @@ asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode) ...@@ -517,7 +517,7 @@ asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode)
return res; return res;
} }
asmlinkage long sys_access(const char __user *filename, int mode) SYSCALL_DEFINE2(access, const char __user *, filename, int, mode)
{ {
return sys_faccessat(AT_FDCWD, filename, mode); return sys_faccessat(AT_FDCWD, filename, mode);
} }
...@@ -688,7 +688,7 @@ static int chown_common(struct dentry * dentry, uid_t user, gid_t group) ...@@ -688,7 +688,7 @@ static int chown_common(struct dentry * dentry, uid_t user, gid_t group)
return error; return error;
} }
asmlinkage long sys_chown(const char __user * filename, uid_t user, gid_t group) SYSCALL_DEFINE3(chown, const char __user *, filename, uid_t, user, gid_t, group)
{ {
struct path path; struct path path;
int error; int error;
...@@ -732,7 +732,7 @@ asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user, ...@@ -732,7 +732,7 @@ asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user,
return error; return error;
} }
asmlinkage long sys_lchown(const char __user * filename, uid_t user, gid_t group) SYSCALL_DEFINE3(lchown, const char __user *, filename, uid_t, user, gid_t, group)
{ {
struct path path; struct path path;
int error; int error;
...@@ -751,8 +751,7 @@ asmlinkage long sys_lchown(const char __user * filename, uid_t user, gid_t group ...@@ -751,8 +751,7 @@ asmlinkage long sys_lchown(const char __user * filename, uid_t user, gid_t group
return error; return error;
} }
SYSCALL_DEFINE3(fchown, unsigned int, fd, uid_t, user, gid_t, group)
asmlinkage long sys_fchown(unsigned int fd, uid_t user, gid_t group)
{ {
struct file * file; struct file * file;
int error = -EBADF; int error = -EBADF;
...@@ -1048,7 +1047,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, int mode) ...@@ -1048,7 +1047,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, int mode)
return fd; return fd;
} }
asmlinkage long sys_open(const char __user *filename, int flags, int mode) SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode)
{ {
long ret; long ret;
...@@ -1117,7 +1116,7 @@ EXPORT_SYMBOL(filp_close); ...@@ -1117,7 +1116,7 @@ EXPORT_SYMBOL(filp_close);
* releasing the fd. This ensures that one clone task can't release * releasing the fd. This ensures that one clone task can't release
* an fd while another clone is opening it. * an fd while another clone is opening it.
*/ */
asmlinkage long sys_close(unsigned int fd) SYSCALL_DEFINE1(close, unsigned int, fd)
{ {
struct file * filp; struct file * filp;
struct files_struct *files = current->files; struct files_struct *files = current->files;
...@@ -1150,14 +1149,13 @@ asmlinkage long sys_close(unsigned int fd) ...@@ -1150,14 +1149,13 @@ asmlinkage long sys_close(unsigned int fd)
spin_unlock(&files->file_lock); spin_unlock(&files->file_lock);
return -EBADF; return -EBADF;
} }
EXPORT_SYMBOL(sys_close); EXPORT_SYMBOL(sys_close);
/* /*
* This routine simulates a hangup on the tty, to arrange that users * This routine simulates a hangup on the tty, to arrange that users
* are given clean terminals at login time. * are given clean terminals at login time.
*/ */
asmlinkage long sys_vhangup(void) SYSCALL_DEFINE0(vhangup)
{ {
if (capable(CAP_SYS_TTY_CONFIG)) { if (capable(CAP_SYS_TTY_CONFIG)) {
tty_vhangup_self(); tty_vhangup_self();
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include <asm/uaccess.h> #include <asm/uaccess.h>
asmlinkage long sys_chown16(const char __user * filename, old_uid_t user, old_gid_t group) SYSCALL_DEFINE3(chown16, const char __user *, filename, old_uid_t, user, old_gid_t, group)
{ {
long ret = sys_chown(filename, low2highuid(user), low2highgid(group)); long ret = sys_chown(filename, low2highuid(user), low2highgid(group));
/* avoid REGPARM breakage on x86: */ /* avoid REGPARM breakage on x86: */
...@@ -25,7 +25,7 @@ asmlinkage long sys_chown16(const char __user * filename, old_uid_t user, old_gi ...@@ -25,7 +25,7 @@ asmlinkage long sys_chown16(const char __user * filename, old_uid_t user, old_gi
return ret; return ret;
} }
asmlinkage long sys_lchown16(const char __user * filename, old_uid_t user, old_gid_t group) SYSCALL_DEFINE3(lchown16, const char __user *, filename, old_uid_t, user, old_gid_t, group)
{ {
long ret = sys_lchown(filename, low2highuid(user), low2highgid(group)); long ret = sys_lchown(filename, low2highuid(user), low2highgid(group));
/* avoid REGPARM breakage on x86: */ /* avoid REGPARM breakage on x86: */
...@@ -33,7 +33,7 @@ asmlinkage long sys_lchown16(const char __user * filename, old_uid_t user, old_g ...@@ -33,7 +33,7 @@ asmlinkage long sys_lchown16(const char __user * filename, old_uid_t user, old_g
return ret; return ret;
} }
asmlinkage long sys_fchown16(unsigned int fd, old_uid_t user, old_gid_t group) SYSCALL_DEFINE3(fchown16, unsigned int, fd, old_uid_t, user, old_gid_t, group)
{ {
long ret = sys_fchown(fd, low2highuid(user), low2highgid(group)); long ret = sys_fchown(fd, low2highuid(user), low2highgid(group));
/* avoid REGPARM breakage on x86: */ /* avoid REGPARM breakage on x86: */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册