diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2009-01-14 08:14:32 -0500 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2009-01-14 08:15:30 -0500 |
commit | 6559eed8ca7db0531a207cd80be5e28cd6f213c5 (patch) | |
tree | 08d7a42d9eb8e7e9b7aa6930a07f1acecb35a282 | |
parent | 2e4d0924eb0c403ce4014fa139d1d61bf2c44fee (diff) |
[CVE-2009-0029] System call wrappers part 30
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
-rw-r--r-- | fs/open.c | 13 | ||||
-rw-r--r-- | fs/stat.c | 12 | ||||
-rw-r--r-- | fs/utimes.c | 6 | ||||
-rw-r--r-- | kernel/fork.c | 2 |
4 files changed, 17 insertions, 16 deletions
@@ -447,7 +447,7 @@ SYSCALL_ALIAS(sys_fallocate, SyS_fallocate); | |||
447 | * We do this by temporarily clearing all FS-related capabilities and | 447 | * We do this by temporarily clearing all FS-related capabilities and |
448 | * switching the fsuid/fsgid around to the real ones. | 448 | * switching the fsuid/fsgid around to the real ones. |
449 | */ | 449 | */ |
450 | asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode) | 450 | SYSCALL_DEFINE3(faccessat, int, dfd, const char __user *, filename, int, mode) |
451 | { | 451 | { |
452 | const struct cred *old_cred; | 452 | const struct cred *old_cred; |
453 | struct cred *override_cred; | 453 | struct cred *override_cred; |
@@ -628,8 +628,7 @@ out: | |||
628 | return err; | 628 | return err; |
629 | } | 629 | } |
630 | 630 | ||
631 | asmlinkage long sys_fchmodat(int dfd, const char __user *filename, | 631 | SYSCALL_DEFINE3(fchmodat, int, dfd, const char __user *, filename, mode_t, mode) |
632 | mode_t mode) | ||
633 | { | 632 | { |
634 | struct path path; | 633 | struct path path; |
635 | struct inode *inode; | 634 | struct inode *inode; |
@@ -707,8 +706,8 @@ out: | |||
707 | return error; | 706 | return error; |
708 | } | 707 | } |
709 | 708 | ||
710 | asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user, | 709 | SYSCALL_DEFINE5(fchownat, int, dfd, const char __user *, filename, uid_t, user, |
711 | gid_t group, int flag) | 710 | gid_t, group, int, flag) |
712 | { | 711 | { |
713 | struct path path; | 712 | struct path path; |
714 | int error = -EINVAL; | 713 | int error = -EINVAL; |
@@ -1060,8 +1059,8 @@ SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode) | |||
1060 | return ret; | 1059 | return ret; |
1061 | } | 1060 | } |
1062 | 1061 | ||
1063 | asmlinkage long sys_openat(int dfd, const char __user *filename, int flags, | 1062 | SYSCALL_DEFINE4(openat, int, dfd, const char __user *, filename, int, flags, |
1064 | int mode) | 1063 | int, mode) |
1065 | { | 1064 | { |
1066 | long ret; | 1065 | long ret; |
1067 | 1066 | ||
@@ -260,8 +260,8 @@ SYSCALL_DEFINE2(newlstat, char __user *, filename, struct stat __user *, statbuf | |||
260 | } | 260 | } |
261 | 261 | ||
262 | #if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT) | 262 | #if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT) |
263 | asmlinkage long sys_newfstatat(int dfd, char __user *filename, | 263 | SYSCALL_DEFINE4(newfstatat, int, dfd, char __user *, filename, |
264 | struct stat __user *statbuf, int flag) | 264 | struct stat __user *, statbuf, int, flag) |
265 | { | 265 | { |
266 | struct kstat stat; | 266 | struct kstat stat; |
267 | int error = -EINVAL; | 267 | int error = -EINVAL; |
@@ -293,8 +293,8 @@ SYSCALL_DEFINE2(newfstat, unsigned int, fd, struct stat __user *, statbuf) | |||
293 | return error; | 293 | return error; |
294 | } | 294 | } |
295 | 295 | ||
296 | asmlinkage long sys_readlinkat(int dfd, const char __user *pathname, | 296 | SYSCALL_DEFINE4(readlinkat, int, dfd, const char __user *, pathname, |
297 | char __user *buf, int bufsiz) | 297 | char __user *, buf, int, bufsiz) |
298 | { | 298 | { |
299 | struct path path; | 299 | struct path path; |
300 | int error; | 300 | int error; |
@@ -400,8 +400,8 @@ SYSCALL_DEFINE2(fstat64, unsigned long, fd, struct stat64 __user *, statbuf) | |||
400 | return error; | 400 | return error; |
401 | } | 401 | } |
402 | 402 | ||
403 | asmlinkage long sys_fstatat64(int dfd, char __user *filename, | 403 | SYSCALL_DEFINE4(fstatat64, int, dfd, char __user *, filename, |
404 | struct stat64 __user *statbuf, int flag) | 404 | struct stat64 __user *, statbuf, int, flag) |
405 | { | 405 | { |
406 | struct kstat stat; | 406 | struct kstat stat; |
407 | int error = -EINVAL; | 407 | int error = -EINVAL; |
diff --git a/fs/utimes.c b/fs/utimes.c index ee853615798a..e4c75db5d373 100644 --- a/fs/utimes.c +++ b/fs/utimes.c | |||
@@ -170,7 +170,8 @@ out: | |||
170 | return error; | 170 | return error; |
171 | } | 171 | } |
172 | 172 | ||
173 | asmlinkage long sys_utimensat(int dfd, char __user *filename, struct timespec __user *utimes, int flags) | 173 | SYSCALL_DEFINE4(utimensat, int, dfd, char __user *, filename, |
174 | struct timespec __user *, utimes, int, flags) | ||
174 | { | 175 | { |
175 | struct timespec tstimes[2]; | 176 | struct timespec tstimes[2]; |
176 | 177 | ||
@@ -187,7 +188,8 @@ asmlinkage long sys_utimensat(int dfd, char __user *filename, struct timespec __ | |||
187 | return do_utimes(dfd, filename, utimes ? tstimes : NULL, flags); | 188 | return do_utimes(dfd, filename, utimes ? tstimes : NULL, flags); |
188 | } | 189 | } |
189 | 190 | ||
190 | asmlinkage long sys_futimesat(int dfd, char __user *filename, struct timeval __user *utimes) | 191 | SYSCALL_DEFINE3(futimesat, int, dfd, char __user *, filename, |
192 | struct timeval __user *, utimes) | ||
191 | { | 193 | { |
192 | struct timeval times[2]; | 194 | struct timeval times[2]; |
193 | struct timespec tstimes[2]; | 195 | struct timespec tstimes[2]; |
diff --git a/kernel/fork.c b/kernel/fork.c index 8eb37d38c6a4..bf0cef8bbdf2 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -1603,7 +1603,7 @@ static int unshare_fd(unsigned long unshare_flags, struct files_struct **new_fdp | |||
1603 | * constructed. Here we are modifying the current, active, | 1603 | * constructed. Here we are modifying the current, active, |
1604 | * task_struct. | 1604 | * task_struct. |
1605 | */ | 1605 | */ |
1606 | asmlinkage long sys_unshare(unsigned long unshare_flags) | 1606 | SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) |
1607 | { | 1607 | { |
1608 | int err = 0; | 1608 | int err = 0; |
1609 | struct fs_struct *fs, *new_fs = NULL; | 1609 | struct fs_struct *fs, *new_fs = NULL; |