[CVE-2009-0029] System call wrappers part 17
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
This commit is contained in:
parent
002c8976ee
commit
ca013e945b
16
fs/open.c
16
fs/open.c
|
@ -517,7 +517,7 @@ out:
|
||||||
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)
|
||||||
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 @@ out:
|
||||||
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 @@ out:
|
||||||
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)
|
||||||
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);
|
||||||
* 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 @@ out_unlock:
|
||||||
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 @@
|
||||||
|
|
||||||
#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
|
||||||
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
|
||||||
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: */
|
||||||
|
|
Loading…
Reference in New Issue