From: Ana Pazos <apa...@quicinc.com> Signed-off-by: Ana Pazos <apa...@quicinc.com> --- Submitting this patch on behalf of Ana Pazos. The bug was triggered by the following c file on aarch64-linux-user.
> #include <signal.h> > #include <sys/prctl.h> > > int main() { > int PDeachSig = 0; > if (prctl(PR_GET_PDEATHSIG, &PDeachSig) == 0 && PDeachSig == SIGKILL) > prctl(PR_SET_PDEATHSIG, 0); > return (PDeachSig == SIGKILL); > } linux-user/syscall.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 05f03919ff..4eac567f97 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -10253,10 +10253,10 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, switch (arg1) { case PR_GET_PDEATHSIG: { - int deathsig; + uint32_t deathsig; ret = get_errno(prctl(arg1, &deathsig, arg3, arg4, arg5)); if (!is_error(ret) && arg2 - && put_user_ual(deathsig, arg2)) { + && put_user_u32(deathsig, arg2)) { return -TARGET_EFAULT; } return ret; -- 2.17.1