浏览代码

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

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Heiko Carstens 16 年之前
父节点
当前提交
6559eed8ca
共有 4 个文件被更改,包括 17 次插入16 次删除
  1. 6 7
      fs/open.c
  2. 6 6
      fs/stat.c
  3. 4 2
      fs/utimes.c
  4. 1 1
      kernel/fork.c

+ 6 - 7
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,
-			     mode_t mode)
+SYSCALL_DEFINE3(fchmodat, int, dfd, const char __user *, filename, 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,
-			     gid_t group, int flag)
+SYSCALL_DEFINE5(fchownat, int, dfd, const char __user *, filename, uid_t, user,
+		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,
-			   int mode)
+SYSCALL_DEFINE4(openat, int, dfd, const char __user *, filename, int, flags,
+		int, mode)
 {
 {
 	long ret;
 	long ret;
 
 

+ 6 - 6
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,
-				struct stat __user *statbuf, int flag)
+SYSCALL_DEFINE4(newfstatat, int, dfd, char __user *, filename,
+		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,
-				char __user *buf, int bufsiz)
+SYSCALL_DEFINE4(readlinkat, int, dfd, const char __user *, pathname,
+		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,
-			       struct stat64 __user *statbuf, int flag)
+SYSCALL_DEFINE4(fstatat64, int, dfd, char __user *, filename,
+		struct stat64 __user *, statbuf, int, flag)
 {
 {
 	struct kstat stat;
 	struct kstat stat;
 	int error = -EINVAL;
 	int error = -EINVAL;

+ 4 - 2
fs/utimes.c

@@ -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];

+ 1 - 1
kernel/fork.c

@@ -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;