X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=signal.c;h=08576ef0dabc9d0df02f5b1d2e32edefd0a992d2;hb=9f8b29f1cd476563fe60c909fbe9d5ea603c398a;hp=9f51440bc4dea139f44d4690df2f102cd4e08f60;hpb=d454dac0dcc605f4eecd8175c94e9fd91a154e72;p=strace diff --git a/signal.c b/signal.c index 9f51440b..08576ef0 100644 --- a/signal.c +++ b/signal.c @@ -242,7 +242,8 @@ printsignal(int nr) } static void -print_sigset_addr_len_limit(struct tcb *tcp, long addr, long len, long min_len) +print_sigset_addr_len_limit(struct tcb *const tcp, const kernel_ureg_t addr, + const kernel_ureg_t len, const unsigned int min_len) { /* * Here len is usually equal to NSIG / 8 or current_wordsize. @@ -259,7 +260,8 @@ print_sigset_addr_len_limit(struct tcb *tcp, long addr, long len, long min_len) } void -print_sigset_addr_len(struct tcb *tcp, long addr, long len) +print_sigset_addr_len(struct tcb *const tcp, const kernel_ureg_t addr, + const kernel_ureg_t len) { print_sigset_addr_len_limit(tcp, addr, len, current_wordsize); } @@ -304,7 +306,7 @@ struct old_sigaction32 { }; static void -decode_old_sigaction(struct tcb *tcp, long addr) +decode_old_sigaction(struct tcb *const tcp, const kernel_ureg_t addr) { struct old_sigaction sa; @@ -501,7 +503,7 @@ struct new_sigaction32 }; static void -decode_new_sigaction(struct tcb *tcp, long addr) +decode_new_sigaction(struct tcb *const tcp, const kernel_ureg_t addr) { struct new_sigaction sa; @@ -526,7 +528,7 @@ decode_new_sigaction(struct tcb *tcp, long addr) * For little-endian, it's the same. * For big-endian, we swap 32-bit words. */ - sa.sa_mask[0] = LONG_LONG(sa32.sa_mask[0], sa32.sa_mask[1]); + sa.sa_mask[0] = ULONG_LONG(sa32.sa_mask[0], sa32.sa_mask[1]); } else #endif if (umove_or_printaddr(tcp, addr, &sa)) @@ -607,11 +609,12 @@ SYS_FUNC(rt_sigsuspend) } static void -print_sigqueueinfo(struct tcb *tcp, int sig, unsigned long uinfo) +print_sigqueueinfo(struct tcb *const tcp, const int sig, + const kernel_ureg_t addr) { printsignal(sig); tprints(", "); - printsiginfo_at(tcp, uinfo); + printsiginfo_at(tcp, addr); } SYS_FUNC(rt_sigqueueinfo)