lkml.org 
[lkml]   [2009]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 38/85] [PATCH 18/44] [CVE-2009-0029] System call wrappers part 08
    2.6.27-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Heiko Carstens <heiko.carstens@de.ibm.com>

    commit 17da2bd90abf428523de0fb98f7075e00e3ed42e upstream.

    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    kernel/exit.c | 7 +++----
    kernel/fork.c | 2 +-
    kernel/futex.c | 6 +++---
    kernel/module.c | 10 ++++------
    kernel/sched.c | 2 +-
    kernel/signal.c | 18 +++++++-----------
    6 files changed, 19 insertions(+), 26 deletions(-)

    --- a/kernel/exit.c
    +++ b/kernel/exit.c
    @@ -1751,9 +1751,8 @@ end:
    return retval;
    }

    -asmlinkage long sys_waitid(int which, pid_t upid,
    - struct siginfo __user *infop, int options,
    - struct rusage __user *ru)
    +SYSCALL_DEFINE5(waitid, int, which, pid_t, upid, struct siginfo __user *,
    + infop, int, options, struct rusage __user *, ru)
    {
    struct pid *pid = NULL;
    enum pid_type type;
    @@ -1830,7 +1829,7 @@ SYSCALL_DEFINE4(wait4, pid_t, upid, int
    * sys_waitpid() remains for compatibility. waitpid() should be
    * implemented by calling sys_wait4() from libc.a.
    */
    -asmlinkage long sys_waitpid(pid_t pid, int __user *stat_addr, int options)
    +SYSCALL_DEFINE3(waitpid, pid_t, pid, int __user *, stat_addr, int, options)
    {
    return sys_wait4(pid, stat_addr, options, NULL);
    }
    --- a/kernel/fork.c
    +++ b/kernel/fork.c
    @@ -865,7 +865,7 @@ static void copy_flags(unsigned long clo
    clear_freeze_flag(p);
    }

    -asmlinkage long sys_set_tid_address(int __user *tidptr)
    +SYSCALL_DEFINE1(set_tid_address, int __user *, tidptr)
    {
    current->clear_child_tid = tidptr;

    --- a/kernel/futex.c
    +++ b/kernel/futex.c
    @@ -2036,9 +2036,9 @@ long do_futex(u32 __user *uaddr, int op,
    }


    -asmlinkage long sys_futex(u32 __user *uaddr, int op, u32 val,
    - struct timespec __user *utime, u32 __user *uaddr2,
    - u32 val3)
    +SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
    + struct timespec __user *, utime, u32 __user *, uaddr2,
    + u32, val3)
    {
    struct timespec ts;
    ktime_t t, *tp = NULL;
    --- a/kernel/module.c
    +++ b/kernel/module.c
    @@ -715,8 +715,8 @@ static void wait_for_zero_refcount(struc
    mutex_lock(&module_mutex);
    }

    -asmlinkage long
    -sys_delete_module(const char __user *name_user, unsigned int flags)
    +SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
    + unsigned int, flags)
    {
    struct module *mod;
    char name[MODULE_NAME_LEN];
    @@ -2257,10 +2257,8 @@ static noinline struct module *load_modu
    }

    /* This is where the real work happens */
    -asmlinkage long
    -sys_init_module(void __user *umod,
    - unsigned long len,
    - const char __user *uargs)
    +SYSCALL_DEFINE3(init_module, void __user *, umod,
    + unsigned long, len, const char __user *, uargs)
    {
    struct module *mod;
    int ret = 0;
    --- a/kernel/sched.c
    +++ b/kernel/sched.c
    @@ -5651,7 +5651,7 @@ SYSCALL_DEFINE1(sched_get_priority_min,
    * this syscall writes the default timeslice value of a given process
    * into the user-space timespec buffer. A value of '0' means infinity.
    */
    -SYSCALL_DEFINE4(sched_rr_get_interval, pid_t, pid,
    +SYSCALL_DEFINE2(sched_rr_get_interval, pid_t, pid,
    struct timespec __user *, interval)
    {
    struct task_struct *p;
    --- a/kernel/signal.c
    +++ b/kernel/signal.c
    @@ -1989,8 +1989,8 @@ int sigprocmask(int how, sigset_t *set,
    return error;
    }

    -asmlinkage long
    -sys_rt_sigprocmask(int how, sigset_t __user *set, sigset_t __user *oset, size_t sigsetsize)
    +SYSCALL_DEFINE4(rt_sigprocmask, int, how, sigset_t __user *, set,
    + sigset_t __user *, oset, size_t, sigsetsize)
    {
    int error = -EINVAL;
    sigset_t old_set, new_set;
    @@ -2049,8 +2049,7 @@ out:
    return error;
    }

    -asmlinkage long
    -sys_rt_sigpending(sigset_t __user *set, size_t sigsetsize)
    +SYSCALL_DEFINE2(rt_sigpending, sigset_t __user *, set, size_t, sigsetsize)
    {
    return do_sigpending(set, sigsetsize);
    }
    @@ -2121,11 +2120,9 @@ int copy_siginfo_to_user(siginfo_t __use

    #endif

    -asmlinkage long
    -sys_rt_sigtimedwait(const sigset_t __user *uthese,
    - siginfo_t __user *uinfo,
    - const struct timespec __user *uts,
    - size_t sigsetsize)
    +SYSCALL_DEFINE4(rt_sigtimedwait, const sigset_t __user *, uthese,
    + siginfo_t __user *, uinfo, const struct timespec __user *, uts,
    + size_t, sigsetsize)
    {
    int ret, sig;
    sigset_t these;
    @@ -2198,8 +2195,7 @@ sys_rt_sigtimedwait(const sigset_t __use
    return ret;
    }

    -asmlinkage long
    -sys_kill(pid_t pid, int sig)
    +SYSCALL_DEFINE2(kill, pid_t, pid, int, sig)
    {
    struct siginfo info;



    \
     
     \ /
      Last update: 2009-01-15 23:25    [W:0.028 / U:33.972 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site