From: Dmitry V. Levin Date: Sun, 25 Dec 2016 09:47:03 +0000 (+0000) Subject: arch_sigreturn: change tracee address type from long to unsigned long X-Git-Tag: v4.16~174 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=44cb9c8356a0d95daf78d631572db1055885a1c1;p=strace arch_sigreturn: change tracee address type from long to unsigned long * linux/arm/arch_sigreturn.c (arch_sigreturn): Change addr variable type from long to unsigned long. * linux/ia64/arch_sigreturn.c (arch_sigreturn): Likewise. * linux/m68k/arch_sigreturn.c (arch_sigreturn): Likewise. * linux/powerpc/arch_sigreturn.c (arch_sigreturn): Likewise. * linux/s390/arch_sigreturn.c (arch_sigreturn): Likewise. * linux/sparc/arch_sigreturn.c (arch_sigreturn): Likewise. * linux/tile/arch_sigreturn.c (arch_sigreturn): Likewise. * linux/crisv10/arch_sigreturn.c (arch_sigreturn): Change the type of addr and regs variables from long to unsigned long. * linux/mips/arch_sigreturn.c (arch_sigreturn): Change addr variable type from long to kernel_ureg_t. * linux/x86_64/arch_sigreturn.c (arch_sigreturn): Change the type of offset and addr variables from long to kernel_ureg_t. --- diff --git a/linux/arm/arch_sigreturn.c b/linux/arm/arch_sigreturn.c index 28726a27..9a8584eb 100644 --- a/linux/arm/arch_sigreturn.c +++ b/linux/arm/arch_sigreturn.c @@ -5,7 +5,7 @@ arch_sigreturn(struct tcb *tcp) #define SIZEOF_STRUCT_SIGCONTEXT (21 * 4) #define OFFSETOF_STRUCT_UCONTEXT_UC_SIGMASK (5 * 4 + SIZEOF_STRUCT_SIGCONTEXT) - const long addr = + const unsigned long addr = #ifdef AARCH64 tcp->currpers == 0 ? (*aarch64_sp_ptr + SIZEOF_STRUCT_SIGINFO + diff --git a/linux/crisv10/arch_sigreturn.c b/linux/crisv10/arch_sigreturn.c index 9086d533..d45e3bac 100644 --- a/linux/crisv10/arch_sigreturn.c +++ b/linux/crisv10/arch_sigreturn.c @@ -1,13 +1,14 @@ static void arch_sigreturn(struct tcb *tcp) { - long regs[PT_MAX + 1]; + unsigned long regs[PT_MAX + 1]; - if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (long)regs) < 0) { + if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, regs) < 0) { perror_msg("sigreturn: PTRACE_GETREGS"); return; } - const long addr = regs[PT_USP] + offsetof(struct sigcontext, oldmask); + const unsigned long addr = + regs[PT_USP] + offsetof(struct sigcontext, oldmask); tprints("{mask="); print_sigset_addr_len(tcp, addr, NSIG / 8); diff --git a/linux/ia64/arch_sigreturn.c b/linux/ia64/arch_sigreturn.c index 8b54d6c1..352ca682 100644 --- a/linux/ia64/arch_sigreturn.c +++ b/linux/ia64/arch_sigreturn.c @@ -3,9 +3,9 @@ arch_sigreturn(struct tcb *tcp) { /* offsetof(struct sigframe, sc) */ #define OFFSETOF_STRUCT_SIGFRAME_SC 0xA0 - const long addr = *ia64_frame_ptr + 16 + - OFFSETOF_STRUCT_SIGFRAME_SC + - offsetof(struct sigcontext, sc_mask); + const unsigned long addr = *ia64_frame_ptr + 16 + + OFFSETOF_STRUCT_SIGFRAME_SC + + offsetof(struct sigcontext, sc_mask); tprints("{mask="); print_sigset_addr_len(tcp, addr, NSIG / 8); tprints("}"); diff --git a/linux/m68k/arch_sigreturn.c b/linux/m68k/arch_sigreturn.c index 12e8bded..ff323458 100644 --- a/linux/m68k/arch_sigreturn.c +++ b/linux/m68k/arch_sigreturn.c @@ -1,7 +1,7 @@ static void arch_sigreturn(struct tcb *tcp) { - long addr; + unsigned long addr; /* Fetch pointer to struct sigcontext. */ if (umove(tcp, *m68k_usp_ptr + 2 * sizeof(int), &addr) < 0) diff --git a/linux/mips/arch_sigreturn.c b/linux/mips/arch_sigreturn.c index 3095fe59..ad972fe0 100644 --- a/linux/mips/arch_sigreturn.c +++ b/linux/mips/arch_sigreturn.c @@ -6,8 +6,8 @@ arch_sigreturn(struct tcb *tcp) * offsetof(struct sigframe, sf_mask) == * sizeof(sf_ass) + sizeof(sf_pad) + sizeof(struct sigcontext) */ - const long addr = mips_REG_SP + 6 * 4 + - sizeof(struct sigcontext); + const kernel_ureg_t addr = mips_REG_SP + 6 * 4 + + sizeof(struct sigcontext); #else /* * This decodes rt_sigreturn. @@ -16,8 +16,8 @@ arch_sigreturn(struct tcb *tcp) * offsetof(struct rt_sigframe, rs_uc) == * sizeof(sf_ass) + sizeof(sf_pad) + sizeof(struct siginfo) */ - const long addr = mips_REG_SP + 6 * 4 + 128 + - offsetof(struct ucontext, uc_sigmask); + const kernel_ureg_t addr = mips_REG_SP + 6 * 4 + 128 + + offsetof(struct ucontext, uc_sigmask); #endif tprints("{mask="); diff --git a/linux/powerpc/arch_sigreturn.c b/linux/powerpc/arch_sigreturn.c index c28a1962..644e0502 100644 --- a/linux/powerpc/arch_sigreturn.c +++ b/linux/powerpc/arch_sigreturn.c @@ -1,19 +1,19 @@ static void arch_sigreturn(struct tcb *tcp) { - long esp = ppc_regs.gpr[1]; + unsigned long addr = ppc_regs.gpr[1]; struct sigcontext sc; /* Skip dummy stack frame. */ #ifdef POWERPC64 if (current_personality == 0) - esp += 128; + addr += 128; else #endif - esp += 64; + addr += 64; - if (umove(tcp, esp, &sc) < 0) { - tprintf("{mask=%#lx}", esp); + if (umove(tcp, addr, &sc) < 0) { + tprintf("{mask=%#lx}", addr); } else { unsigned long mask[NSIG / 8 / sizeof(long)]; #ifdef POWERPC64 diff --git a/linux/s390/arch_sigreturn.c b/linux/s390/arch_sigreturn.c index 00549ba8..3990ae6f 100644 --- a/linux/s390/arch_sigreturn.c +++ b/linux/s390/arch_sigreturn.c @@ -1,8 +1,8 @@ static void arch_sigreturn(struct tcb *tcp) { - long mask[NSIG / 8 / sizeof(long)]; - const long addr = *s390_frame_ptr + __SIGNAL_FRAMESIZE; + unsigned long mask[NSIG / 8 / sizeof(long)]; + const unsigned long addr = *s390_frame_ptr + __SIGNAL_FRAMESIZE; if (umove(tcp, addr, &mask) < 0) { tprintf("{mask=%#lx}", addr); diff --git a/linux/sparc/arch_sigreturn.c b/linux/sparc/arch_sigreturn.c index 0c0e5112..dca44143 100644 --- a/linux/sparc/arch_sigreturn.c +++ b/linux/sparc/arch_sigreturn.c @@ -11,8 +11,8 @@ static void arch_sigreturn(struct tcb *tcp) { - long fp = sparc_regs.u_regs[U_REG_FP] + - SIZEOF_STRUCT_SPARC_STACKF + SIZEOF_STRUCT_PT_REGS; + unsigned long addr = sparc_regs.u_regs[U_REG_FP] + + SIZEOF_STRUCT_SPARC_STACKF + SIZEOF_STRUCT_PT_REGS; struct { unsigned int mask; char fpu_save[PERSONALITY_WORDSIZE]; @@ -20,8 +20,8 @@ arch_sigreturn(struct tcb *tcp) unsigned int extramask[NSIG / 8 / sizeof(int) - 1]; } frame; - if (umove(tcp, fp, &frame) < 0) { - tprintf("{mask=%#lx}", fp); + if (umove(tcp, addr, &frame) < 0) { + tprintf("{mask=%#lx}", addr); } else { unsigned int mask[NSIG / 8 / sizeof(int)]; diff --git a/linux/tile/arch_sigreturn.c b/linux/tile/arch_sigreturn.c index b1182fce..53a3fbbe 100644 --- a/linux/tile/arch_sigreturn.c +++ b/linux/tile/arch_sigreturn.c @@ -3,8 +3,8 @@ arch_sigreturn(struct tcb *tcp) { /* offset of ucontext in the kernel's sigframe structure */ #define SIGFRAME_UC_OFFSET C_ABI_SAVE_AREA_SIZE + sizeof(siginfo_t) - const long addr = tile_regs.sp + SIGFRAME_UC_OFFSET + - offsetof(struct ucontext, uc_sigmask); + const unsigned long addr = tile_regs.sp + SIGFRAME_UC_OFFSET + + offsetof(struct ucontext, uc_sigmask); tprints("{mask="); print_sigset_addr_len(tcp, addr, NSIG / 8); diff --git a/linux/x86_64/arch_sigreturn.c b/linux/x86_64/arch_sigreturn.c index 1de0a0ad..46dce485 100644 --- a/linux/x86_64/arch_sigreturn.c +++ b/linux/x86_64/arch_sigreturn.c @@ -18,14 +18,14 @@ arch_sigreturn(struct tcb *tcp) #define X86_64_SIGMASK_OFFSET offsetof(struct ucontext, uc_sigmask) #define X32_SIGMASK_OFFSET sizeof(ucontext_x32_header) - const unsigned long offset = + const kernel_ureg_t offset = #ifdef X32 X32_SIGMASK_OFFSET; #else current_personality == 2 ? X32_SIGMASK_OFFSET : X86_64_SIGMASK_OFFSET; #endif - const unsigned long addr = (unsigned long) *x86_64_rsp_ptr + offset; + const kernel_ureg_t addr = (kernel_ureg_t) *x86_64_rsp_ptr + offset; tprints("{mask="); print_sigset_addr_len(tcp, addr, NSIG / 8); tprints("}");