signal: limit scope of struct old_sigaction32 definition

* signal.c (struct old_sigaction32): Define only if [!current_wordsize].
This commit is contained in:
Дмитрий Левин 2017-05-28 17:13:29 +00:00
parent 337d3a10ce
commit a9cdd9f54c

View File

@ -320,14 +320,6 @@ struct old_sigaction {
#endif
;
struct old_sigaction32 {
/* sa_handler may be a libc #define, need to use other name: */
uint32_t sa_handler__;
uint32_t sa_mask;
uint32_t sa_flags;
uint32_t sa_restorer;
};
static void
decode_old_sigaction(struct tcb *const tcp, const kernel_ulong_t addr)
{
@ -335,7 +327,12 @@ decode_old_sigaction(struct tcb *const tcp, const kernel_ulong_t addr)
#ifndef current_wordsize
if (current_wordsize < sizeof(sa.sa_handler__)) {
struct old_sigaction32 sa32;
struct old_sigaction32 {
uint32_t sa_handler__;
uint32_t sa_mask;
uint32_t sa_flags;
uint32_t sa_restorer;
} sa32;
if (umove_or_printaddr(tcp, addr, &sa32))
return;