| From 002c8976ee537724b20a5e179d9b349309438836 Mon Sep 17 00:00:00 2001 |
| From: Heiko Carstens <heiko.carstens@de.ibm.com> |
| Date: Wed, 14 Jan 2009 14:14:18 +0100 |
| Subject: [PATCH 26/44] [CVE-2009-0029] System call wrappers part 16 |
| |
| From: Heiko Carstens <heiko.carstens@de.ibm.com> |
| |
| commit 002c8976ee537724b20a5e179d9b349309438836 upstream. |
| |
| Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| --- |
| fs/aio.c | 22 +++++++++++----------- |
| fs/locks.c | 2 +- |
| fs/open.c | 2 +- |
| fs/read_write.c | 4 ++-- |
| fs/stat.c | 4 ++-- |
| 5 files changed, 17 insertions(+), 17 deletions(-) |
| |
| --- a/fs/aio.c |
| +++ b/fs/aio.c |
| @@ -1258,7 +1258,7 @@ static void io_destroy(struct kioctx *io |
| * pointer is passed for ctxp. Will fail with -ENOSYS if not |
| * implemented. |
| */ |
| -asmlinkage long sys_io_setup(unsigned nr_events, aio_context_t __user *ctxp) |
| +SYSCALL_DEFINE2(io_setup, unsigned, nr_events, aio_context_t __user *, ctxp) |
| { |
| struct kioctx *ioctx = NULL; |
| unsigned long ctx; |
| @@ -1296,7 +1296,7 @@ out: |
| * implemented. May fail with -EFAULT if the context pointed to |
| * is invalid. |
| */ |
| -asmlinkage long sys_io_destroy(aio_context_t ctx) |
| +SYSCALL_DEFINE1(io_destroy, aio_context_t, ctx) |
| { |
| struct kioctx *ioctx = lookup_ioctx(ctx); |
| if (likely(NULL != ioctx)) { |
| @@ -1650,8 +1650,8 @@ out_put_req: |
| * are available to queue any iocbs. Will return 0 if nr is 0. Will |
| * fail with -ENOSYS if not implemented. |
| */ |
| -asmlinkage long sys_io_submit(aio_context_t ctx_id, long nr, |
| - struct iocb __user * __user *iocbpp) |
| +SYSCALL_DEFINE3(io_submit, aio_context_t, ctx_id, long, nr, |
| + struct iocb __user * __user *, iocbpp) |
| { |
| struct kioctx *ctx; |
| long ret = 0; |
| @@ -1725,8 +1725,8 @@ static struct kiocb *lookup_kiocb(struct |
| * invalid. May fail with -EAGAIN if the iocb specified was not |
| * cancelled. Will fail with -ENOSYS if not implemented. |
| */ |
| -asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb __user *iocb, |
| - struct io_event __user *result) |
| +SYSCALL_DEFINE3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb, |
| + struct io_event __user *, result) |
| { |
| int (*cancel)(struct kiocb *iocb, struct io_event *res); |
| struct kioctx *ctx; |
| @@ -1787,11 +1787,11 @@ asmlinkage long sys_io_cancel(aio_contex |
| * will be updated if not NULL and the operation blocks. Will fail |
| * with -ENOSYS if not implemented. |
| */ |
| -asmlinkage long sys_io_getevents(aio_context_t ctx_id, |
| - long min_nr, |
| - long nr, |
| - struct io_event __user *events, |
| - struct timespec __user *timeout) |
| +SYSCALL_DEFINE5(io_getevents, aio_context_t, ctx_id, |
| + long, min_nr, |
| + long, nr, |
| + struct io_event __user *, events, |
| + struct timespec __user *, timeout) |
| { |
| struct kioctx *ioctx = lookup_ioctx(ctx_id); |
| long ret = -EINVAL; |
| --- a/fs/locks.c |
| +++ b/fs/locks.c |
| @@ -1564,7 +1564,7 @@ EXPORT_SYMBOL(flock_lock_file_wait); |
| * %LOCK_MAND can be combined with %LOCK_READ or %LOCK_WRITE to allow other |
| * processes read and write access respectively. |
| */ |
| -asmlinkage long sys_flock(unsigned int fd, unsigned int cmd) |
| +SYSCALL_DEFINE2(flock, unsigned int, fd, unsigned int, cmd) |
| { |
| struct file *filp; |
| struct file_lock *lock; |
| --- a/fs/open.c |
| +++ b/fs/open.c |
| @@ -1081,7 +1081,7 @@ asmlinkage long sys_openat(int dfd, cons |
| * For backward compatibility? Maybe this should be moved |
| * into arch/i386 instead? |
| */ |
| -asmlinkage long sys_creat(const char __user * pathname, int mode) |
| +SYSCALL_DEFINE2(creat, const char __user *, pathname, int, mode) |
| { |
| return sys_open(pathname, O_CREAT | O_WRONLY | O_TRUNC, mode); |
| } |
| --- a/fs/read_write.c |
| +++ b/fs/read_write.c |
| @@ -815,7 +815,7 @@ out: |
| return retval; |
| } |
| |
| -asmlinkage long sys_sendfile(int out_fd, int in_fd, off_t __user *offset, size_t count) |
| +SYSCALL_DEFINE4(sendfile, int, out_fd, int, in_fd, off_t __user *, offset, size_t, count) |
| { |
| loff_t pos; |
| off_t off; |
| @@ -834,7 +834,7 @@ asmlinkage long sys_sendfile(int out_fd, |
| return do_sendfile(out_fd, in_fd, NULL, count, 0); |
| } |
| |
| -asmlinkage long sys_sendfile64(int out_fd, int in_fd, loff_t __user *offset, size_t count) |
| +SYSCALL_DEFINE4(sendfile64, int, out_fd, int, in_fd, loff_t __user *, offset, size_t, count) |
| { |
| loff_t pos; |
| ssize_t ret; |
| --- a/fs/stat.c |
| +++ b/fs/stat.c |
| @@ -320,8 +320,8 @@ asmlinkage long sys_readlinkat(int dfd, |
| return error; |
| } |
| |
| -asmlinkage long sys_readlink(const char __user *path, char __user *buf, |
| - int bufsiz) |
| +SYSCALL_DEFINE3(readlink, const char __user *, path, char __user *, buf, |
| + int, bufsiz) |
| { |
| return sys_readlinkat(AT_FDCWD, path, buf, bufsiz); |
| } |