aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2009-01-14 08:14:32 -0500
committerHeiko Carstens <heiko.carstens@de.ibm.com>2009-01-14 08:15:30 -0500
commit6559eed8ca7db0531a207cd80be5e28cd6f213c5 (patch)
tree08d7a42d9eb8e7e9b7aa6930a07f1acecb35a282
parent2e4d0924eb0c403ce4014fa139d1d61bf2c44fee (diff)
[CVE-2009-0029] System call wrappers part 30
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
-rw-r--r--fs/open.c13
-rw-r--r--fs/stat.c12
-rw-r--r--fs/utimes.c6
-rw-r--r--kernel/fork.c2
4 files changed, 17 insertions, 16 deletions
diff --git a/fs/open.c b/fs/open.c
index bc49e3c388d9..a3a78ceb2a2b 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -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 */
450asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode) 450SYSCALL_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
631asmlinkage long sys_fchmodat(int dfd, const char __user *filename, 631SYSCALL_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
710asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user, 709SYSCALL_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
1063asmlinkage long sys_openat(int dfd, const char __user *filename, int flags, 1062SYSCALL_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
diff --git a/fs/stat.c b/fs/stat.c
index d712a0dfb50f..2db740a0cfb5 100644
--- a/fs/stat.c
+++ b/fs/stat.c
@@ -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)
263asmlinkage long sys_newfstatat(int dfd, char __user *filename, 263SYSCALL_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
296asmlinkage long sys_readlinkat(int dfd, const char __user *pathname, 296SYSCALL_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
403asmlinkage long sys_fstatat64(int dfd, char __user *filename, 403SYSCALL_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
173asmlinkage long sys_utimensat(int dfd, char __user *filename, struct timespec __user *utimes, int flags) 173SYSCALL_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
190asmlinkage long sys_futimesat(int dfd, char __user *filename, struct timeval __user *utimes) 191SYSCALL_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 */
1606asmlinkage long sys_unshare(unsigned long unshare_flags) 1606SYSCALL_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;