diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2009-01-14 08:14:11 -0500 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2009-01-14 08:15:21 -0500 |
commit | a5f8fa9e9ba5ef3305e147f41ad6e1e84ac1f0bd (patch) | |
tree | a9bedc6890d6379f0839c280a20c5da3bd9f2352 | |
parent | 17da2bd90abf428523de0fb98f7075e00e3ed42e (diff) |
[CVE-2009-0029] System call wrappers part 09
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
-rw-r--r-- | fs/sync.c | 6 | ||||
-rw-r--r-- | kernel/signal.c | 21 |
2 files changed, 11 insertions, 16 deletions
@@ -36,7 +36,7 @@ static void do_sync(unsigned long wait) | |||
36 | laptop_sync_completion(); | 36 | laptop_sync_completion(); |
37 | } | 37 | } |
38 | 38 | ||
39 | asmlinkage long sys_sync(void) | 39 | SYSCALL_DEFINE0(sync) |
40 | { | 40 | { |
41 | do_sync(1); | 41 | do_sync(1); |
42 | return 0; | 42 | return 0; |
@@ -144,12 +144,12 @@ static int do_fsync(unsigned int fd, int datasync) | |||
144 | return ret; | 144 | return ret; |
145 | } | 145 | } |
146 | 146 | ||
147 | asmlinkage long sys_fsync(unsigned int fd) | 147 | SYSCALL_DEFINE1(fsync, unsigned int, fd) |
148 | { | 148 | { |
149 | return do_fsync(fd, 0); | 149 | return do_fsync(fd, 0); |
150 | } | 150 | } |
151 | 151 | ||
152 | asmlinkage long sys_fdatasync(unsigned int fd) | 152 | SYSCALL_DEFINE1(fdatasync, unsigned int, fd) |
153 | { | 153 | { |
154 | return do_fsync(fd, 1); | 154 | return do_fsync(fd, 1); |
155 | } | 155 | } |
diff --git a/kernel/signal.c b/kernel/signal.c index 278cc8737f17..e2333929611a 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -2279,7 +2279,7 @@ static int do_tkill(pid_t tgid, pid_t pid, int sig) | |||
2279 | * exists but it's not belonging to the target process anymore. This | 2279 | * exists but it's not belonging to the target process anymore. This |
2280 | * method solves the problem of threads exiting and PIDs getting reused. | 2280 | * method solves the problem of threads exiting and PIDs getting reused. |
2281 | */ | 2281 | */ |
2282 | asmlinkage long sys_tgkill(pid_t tgid, pid_t pid, int sig) | 2282 | SYSCALL_DEFINE3(tgkill, pid_t, tgid, pid_t, pid, int, sig) |
2283 | { | 2283 | { |
2284 | /* This is only valid for single tasks */ | 2284 | /* This is only valid for single tasks */ |
2285 | if (pid <= 0 || tgid <= 0) | 2285 | if (pid <= 0 || tgid <= 0) |
@@ -2291,8 +2291,7 @@ asmlinkage long sys_tgkill(pid_t tgid, pid_t pid, int sig) | |||
2291 | /* | 2291 | /* |
2292 | * Send a signal to only one task, even if it's a CLONE_THREAD task. | 2292 | * Send a signal to only one task, even if it's a CLONE_THREAD task. |
2293 | */ | 2293 | */ |
2294 | asmlinkage long | 2294 | SYSCALL_DEFINE2(tkill, pid_t, pid, int, sig) |
2295 | sys_tkill(pid_t pid, int sig) | ||
2296 | { | 2295 | { |
2297 | /* This is only valid for single tasks */ | 2296 | /* This is only valid for single tasks */ |
2298 | if (pid <= 0) | 2297 | if (pid <= 0) |
@@ -2301,8 +2300,8 @@ sys_tkill(pid_t pid, int sig) | |||
2301 | return do_tkill(0, pid, sig); | 2300 | return do_tkill(0, pid, sig); |
2302 | } | 2301 | } |
2303 | 2302 | ||
2304 | asmlinkage long | 2303 | SYSCALL_DEFINE3(rt_sigqueueinfo, pid_t, pid, int, sig, |
2305 | sys_rt_sigqueueinfo(pid_t pid, int sig, siginfo_t __user *uinfo) | 2304 | siginfo_t __user *, uinfo) |
2306 | { | 2305 | { |
2307 | siginfo_t info; | 2306 | siginfo_t info; |
2308 | 2307 | ||
@@ -2526,15 +2525,13 @@ out: | |||
2526 | /* | 2525 | /* |
2527 | * For backwards compatibility. Functionality superseded by sigprocmask. | 2526 | * For backwards compatibility. Functionality superseded by sigprocmask. |
2528 | */ | 2527 | */ |
2529 | asmlinkage long | 2528 | SYSCALL_DEFINE0(sgetmask) |
2530 | sys_sgetmask(void) | ||
2531 | { | 2529 | { |
2532 | /* SMP safe */ | 2530 | /* SMP safe */ |
2533 | return current->blocked.sig[0]; | 2531 | return current->blocked.sig[0]; |
2534 | } | 2532 | } |
2535 | 2533 | ||
2536 | asmlinkage long | 2534 | SYSCALL_DEFINE1(ssetmask, int, newmask) |
2537 | sys_ssetmask(int newmask) | ||
2538 | { | 2535 | { |
2539 | int old; | 2536 | int old; |
2540 | 2537 | ||
@@ -2554,8 +2551,7 @@ sys_ssetmask(int newmask) | |||
2554 | /* | 2551 | /* |
2555 | * For backwards compatibility. Functionality superseded by sigaction. | 2552 | * For backwards compatibility. Functionality superseded by sigaction. |
2556 | */ | 2553 | */ |
2557 | asmlinkage long | 2554 | SYSCALL_DEFINE2(signal, int, sig, __sighandler_t, handler) |
2558 | sys_signal(int sig, __sighandler_t handler) | ||
2559 | { | 2555 | { |
2560 | struct k_sigaction new_sa, old_sa; | 2556 | struct k_sigaction new_sa, old_sa; |
2561 | int ret; | 2557 | int ret; |
@@ -2572,8 +2568,7 @@ sys_signal(int sig, __sighandler_t handler) | |||
2572 | 2568 | ||
2573 | #ifdef __ARCH_WANT_SYS_PAUSE | 2569 | #ifdef __ARCH_WANT_SYS_PAUSE |
2574 | 2570 | ||
2575 | asmlinkage long | 2571 | SYSCALL_DEFINE0(pause) |
2576 | sys_pause(void) | ||
2577 | { | 2572 | { |
2578 | current->state = TASK_INTERRUPTIBLE; | 2573 | current->state = TASK_INTERRUPTIBLE; |
2579 | schedule(); | 2574 | schedule(); |