diff options
author | Mike Frysinger <vapier@gentoo.org> | 2012-03-15 00:45:33 -0400 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2012-03-15 20:14:17 +0000 |
commit | dde045c13f77ca477aa59e19d0b50ae4afa906b6 (patch) | |
tree | e7c000ef625a75d260545b4fb741f0c5ba2ea699 /linux | |
parent | 384b0ada7d821f3797bf5d72dcf096032d662193 (diff) | |
download | strace-dde045c13f77ca477aa59e19d0b50ae4afa906b6.tar.gz strace-dde045c13f77ca477aa59e19d0b50ae4afa906b6.tar.bz2 strace-dde045c13f77ca477aa59e19d0b50ae4afa906b6.tar.xz |
alpha: fix decode of osf_sigprocmask
The alpha sigprocmask syscall is special in that it comes from OSF rather
than the style that everyone else uses.
Tested with this simple code:
$ cat test.c
#include <signal.h>
main() {
sigset_t set, oldset;
sigemptyset(&set);
sigaddset(&set, SIGINT);
sigaddset(&set, SIGHUP);
sigprocmask(SIG_SETMASK, &set, &oldset);
sigprocmask(SIG_UNBLOCK, &oldset, &set);
sleep(3);
}
$ gcc test.c && ./strace ./a.out
...
osf_sigprocmask(SIG_SETMASK, [HUP INT]) = 0 (old mask [])
osf_sigprocmask(SIG_UNBLOCK, []) = 0x3 (old mask [HUP INT])
osf_sigprocmask(SIG_BLOCK, [CHLD]) = 0x3 (old mask [HUP INT])
...
* linux/alpha/syscallent.h: Call sys_sigprocmask for osf_sigprocmask,
and change number of arguments to two.
* signal.c (sys_sigprocmask): Fix decoding of alpha osf sigprocmask.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'linux')
-rw-r--r-- | linux/alpha/syscallent.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h index c7297cd..85c341a 100644 --- a/linux/alpha/syscallent.h +++ b/linux/alpha/syscallent.h @@ -76,7 +76,7 @@ { 3, TD|TF, sys_open, "open" }, /* 45 */ { 5, 0, printargs, "osf_old_sigaction" }, /* 46, not implemented */ { 1, NF, sys_getgid, "getxgid" }, /* 47 */ - { 3, TS, printargs, "osf_sigprocmask" }, /* 48 */ + { 2, TS, sys_sigprocmask, "osf_sigprocmask" }, /* 48 */ { 5, 0, printargs, "osf_getlogin" }, /* 49, not implemented */ { 5, 0, printargs, "osf_setlogin" }, /* 50, not implemented */ { 1, TF, sys_acct, "acct" }, /* 51 */ |