forked from luck/tmp_suning_uos_patched
[CVE-2009-0029] System call wrappers part 08
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
This commit is contained in:
parent
754fe8d297
commit
17da2bd90a
|
@ -1754,9 +1754,8 @@ static long do_wait(enum pid_type type, struct pid *pid, int options,
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long sys_waitid(int which, pid_t upid,
|
SYSCALL_DEFINE5(waitid, int, which, pid_t, upid, struct siginfo __user *,
|
||||||
struct siginfo __user *infop, int options,
|
infop, int, options, struct rusage __user *, ru)
|
||||||
struct rusage __user *ru)
|
|
||||||
{
|
{
|
||||||
struct pid *pid = NULL;
|
struct pid *pid = NULL;
|
||||||
enum pid_type type;
|
enum pid_type type;
|
||||||
|
@ -1833,7 +1832,7 @@ SYSCALL_DEFINE4(wait4, pid_t, upid, int __user *, stat_addr,
|
||||||
* sys_waitpid() remains for compatibility. waitpid() should be
|
* sys_waitpid() remains for compatibility. waitpid() should be
|
||||||
* implemented by calling sys_wait4() from libc.a.
|
* 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);
|
return sys_wait4(pid, stat_addr, options, NULL);
|
||||||
}
|
}
|
||||||
|
|
|
@ -901,7 +901,7 @@ static void copy_flags(unsigned long clone_flags, struct task_struct *p)
|
||||||
clear_freeze_flag(p);
|
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;
|
current->clear_child_tid = tidptr;
|
||||||
|
|
||||||
|
|
|
@ -1978,9 +1978,9 @@ long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
asmlinkage long sys_futex(u32 __user *uaddr, int op, u32 val,
|
SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
|
||||||
struct timespec __user *utime, u32 __user *uaddr2,
|
struct timespec __user *, utime, u32 __user *, uaddr2,
|
||||||
u32 val3)
|
u32, val3)
|
||||||
{
|
{
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
ktime_t t, *tp = NULL;
|
ktime_t t, *tp = NULL;
|
||||||
|
|
|
@ -743,8 +743,8 @@ static void wait_for_zero_refcount(struct module *mod)
|
||||||
mutex_lock(&module_mutex);
|
mutex_lock(&module_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long
|
SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
|
||||||
sys_delete_module(const char __user *name_user, unsigned int flags)
|
unsigned int, flags)
|
||||||
{
|
{
|
||||||
struct module *mod;
|
struct module *mod;
|
||||||
char name[MODULE_NAME_LEN];
|
char name[MODULE_NAME_LEN];
|
||||||
|
@ -2296,10 +2296,8 @@ static noinline struct module *load_module(void __user *umod,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is where the real work happens */
|
/* This is where the real work happens */
|
||||||
asmlinkage long
|
SYSCALL_DEFINE3(init_module, void __user *, umod,
|
||||||
sys_init_module(void __user *umod,
|
unsigned long, len, const char __user *, uargs)
|
||||||
unsigned long len,
|
|
||||||
const char __user *uargs)
|
|
||||||
{
|
{
|
||||||
struct module *mod;
|
struct module *mod;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
|
@ -5869,7 +5869,7 @@ SYSCALL_DEFINE1(sched_get_priority_min, int, policy)
|
||||||
* this syscall writes the default timeslice value of a given process
|
* this syscall writes the default timeslice value of a given process
|
||||||
* into the user-space timespec buffer. A value of '0' means infinity.
|
* 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 timespec __user *, interval)
|
||||||
{
|
{
|
||||||
struct task_struct *p;
|
struct task_struct *p;
|
||||||
|
|
|
@ -2014,8 +2014,8 @@ int sigprocmask(int how, sigset_t *set, sigset_t *oldset)
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long
|
SYSCALL_DEFINE4(rt_sigprocmask, int, how, sigset_t __user *, set,
|
||||||
sys_rt_sigprocmask(int how, sigset_t __user *set, sigset_t __user *oset, size_t sigsetsize)
|
sigset_t __user *, oset, size_t, sigsetsize)
|
||||||
{
|
{
|
||||||
int error = -EINVAL;
|
int error = -EINVAL;
|
||||||
sigset_t old_set, new_set;
|
sigset_t old_set, new_set;
|
||||||
|
@ -2074,8 +2074,7 @@ long do_sigpending(void __user *set, unsigned long sigsetsize)
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long
|
SYSCALL_DEFINE2(rt_sigpending, sigset_t __user *, set, size_t, sigsetsize)
|
||||||
sys_rt_sigpending(sigset_t __user *set, size_t sigsetsize)
|
|
||||||
{
|
{
|
||||||
return do_sigpending(set, sigsetsize);
|
return do_sigpending(set, sigsetsize);
|
||||||
}
|
}
|
||||||
|
@ -2146,11 +2145,9 @@ int copy_siginfo_to_user(siginfo_t __user *to, siginfo_t *from)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
asmlinkage long
|
SYSCALL_DEFINE4(rt_sigtimedwait, const sigset_t __user *, uthese,
|
||||||
sys_rt_sigtimedwait(const sigset_t __user *uthese,
|
siginfo_t __user *, uinfo, const struct timespec __user *, uts,
|
||||||
siginfo_t __user *uinfo,
|
size_t, sigsetsize)
|
||||||
const struct timespec __user *uts,
|
|
||||||
size_t sigsetsize)
|
|
||||||
{
|
{
|
||||||
int ret, sig;
|
int ret, sig;
|
||||||
sigset_t these;
|
sigset_t these;
|
||||||
|
@ -2223,8 +2220,7 @@ sys_rt_sigtimedwait(const sigset_t __user *uthese,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage long
|
SYSCALL_DEFINE2(kill, pid_t, pid, int, sig)
|
||||||
sys_kill(pid_t pid, int sig)
|
|
||||||
{
|
{
|
||||||
struct siginfo info;
|
struct siginfo info;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user