mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 03:06:10 +00:00
[CVE-2009-0029] System call wrappers part 30
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
This commit is contained in:
parent
2e4d0924eb
commit
6559eed8ca
4 changed files with 17 additions and 16 deletions
13
fs/open.c
13
fs/open.c
|
@ -447,7 +447,7 @@ SYSCALL_ALIAS(sys_fallocate, SyS_fallocate);
|
||||||
* We do this by temporarily clearing all FS-related capabilities and
|
* We do this by temporarily clearing all FS-related capabilities and
|
||||||
* switching the fsuid/fsgid around to the real ones.
|
* switching the fsuid/fsgid around to the real ones.
|
||||||
*/
|
*/
|
||||||
asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode)
|
SYSCALL_DEFINE3(faccessat, int, dfd, const char __user *, filename, int, mode)
|
||||||
{
|
{
|
||||||
const struct cred *old_cred;
|
const struct cred *old_cred;
|
||||||
struct cred *override_cred;
|
struct cred *override_cred;
|
||||||
|
@ -628,8 +628,7 @@ out:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long sys_fchmodat(int dfd, const char __user *filename,
|
SYSCALL_DEFINE3(fchmodat, int, dfd, const char __user *, filename, mode_t, mode)
|
||||||
mode_t mode)
|
|
||||||
{
|
{
|
||||||
struct path path;
|
struct path path;
|
||||||
struct inode *inode;
|
struct inode *inode;
|
||||||
|
@ -707,8 +706,8 @@ out:
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user,
|
SYSCALL_DEFINE5(fchownat, int, dfd, const char __user *, filename, uid_t, user,
|
||||||
gid_t group, int flag)
|
gid_t, group, int, flag)
|
||||||
{
|
{
|
||||||
struct path path;
|
struct path path;
|
||||||
int error = -EINVAL;
|
int error = -EINVAL;
|
||||||
|
@ -1060,8 +1059,8 @@ SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long sys_openat(int dfd, const char __user *filename, int flags,
|
SYSCALL_DEFINE4(openat, int, dfd, const char __user *, filename, int, flags,
|
||||||
int mode)
|
int, mode)
|
||||||
{
|
{
|
||||||
long ret;
|
long ret;
|
||||||
|
|
||||||
|
|
12
fs/stat.c
12
fs/stat.c
|
@ -260,8 +260,8 @@ SYSCALL_DEFINE2(newlstat, char __user *, filename, struct stat __user *, statbuf
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT)
|
#if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT)
|
||||||
asmlinkage long sys_newfstatat(int dfd, char __user *filename,
|
SYSCALL_DEFINE4(newfstatat, int, dfd, char __user *, filename,
|
||||||
struct stat __user *statbuf, int flag)
|
struct stat __user *, statbuf, int, flag)
|
||||||
{
|
{
|
||||||
struct kstat stat;
|
struct kstat stat;
|
||||||
int error = -EINVAL;
|
int error = -EINVAL;
|
||||||
|
@ -293,8 +293,8 @@ SYSCALL_DEFINE2(newfstat, unsigned int, fd, struct stat __user *, statbuf)
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long sys_readlinkat(int dfd, const char __user *pathname,
|
SYSCALL_DEFINE4(readlinkat, int, dfd, const char __user *, pathname,
|
||||||
char __user *buf, int bufsiz)
|
char __user *, buf, int, bufsiz)
|
||||||
{
|
{
|
||||||
struct path path;
|
struct path path;
|
||||||
int error;
|
int error;
|
||||||
|
@ -400,8 +400,8 @@ SYSCALL_DEFINE2(fstat64, unsigned long, fd, struct stat64 __user *, statbuf)
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long sys_fstatat64(int dfd, char __user *filename,
|
SYSCALL_DEFINE4(fstatat64, int, dfd, char __user *, filename,
|
||||||
struct stat64 __user *statbuf, int flag)
|
struct stat64 __user *, statbuf, int, flag)
|
||||||
{
|
{
|
||||||
struct kstat stat;
|
struct kstat stat;
|
||||||
int error = -EINVAL;
|
int error = -EINVAL;
|
||||||
|
|
|
@ -170,7 +170,8 @@ out:
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long sys_utimensat(int dfd, char __user *filename, struct timespec __user *utimes, int flags)
|
SYSCALL_DEFINE4(utimensat, int, dfd, char __user *, filename,
|
||||||
|
struct timespec __user *, utimes, int, flags)
|
||||||
{
|
{
|
||||||
struct timespec tstimes[2];
|
struct timespec tstimes[2];
|
||||||
|
|
||||||
|
@ -187,7 +188,8 @@ asmlinkage long sys_utimensat(int dfd, char __user *filename, struct timespec __
|
||||||
return do_utimes(dfd, filename, utimes ? tstimes : NULL, flags);
|
return do_utimes(dfd, filename, utimes ? tstimes : NULL, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long sys_futimesat(int dfd, char __user *filename, struct timeval __user *utimes)
|
SYSCALL_DEFINE3(futimesat, int, dfd, char __user *, filename,
|
||||||
|
struct timeval __user *, utimes)
|
||||||
{
|
{
|
||||||
struct timeval times[2];
|
struct timeval times[2];
|
||||||
struct timespec tstimes[2];
|
struct timespec tstimes[2];
|
||||||
|
|
|
@ -1603,7 +1603,7 @@ static int unshare_fd(unsigned long unshare_flags, struct files_struct **new_fdp
|
||||||
* constructed. Here we are modifying the current, active,
|
* constructed. Here we are modifying the current, active,
|
||||||
* task_struct.
|
* task_struct.
|
||||||
*/
|
*/
|
||||||
asmlinkage long sys_unshare(unsigned long unshare_flags)
|
SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
struct fs_struct *fs, *new_fs = NULL;
|
struct fs_struct *fs, *new_fs = NULL;
|
||||||
|
|
Loading…
Reference in a new issue