diff --git a/src/kernel/emulation/linux/signal/kill.c b/src/kernel/emulation/linux/signal/kill.c index f4441dee3..f458567f0 100644 --- a/src/kernel/emulation/linux/signal/kill.c +++ b/src/kernel/emulation/linux/signal/kill.c @@ -21,7 +21,7 @@ long sys_kill(int pid, int signum, int posix) int tracer = lkm_call(NR_get_tracer, (void*)(long)pid); if (tracer == getpid()) { - linux_sigqueue(ret, SIGNAL_SIGEXC_THUPDATE, -SIGSTOP); + linux_sigqueue(pid, SIGNAL_SIGEXC_THUPDATE, -LINUX_SIGSTOP); return 0; } } diff --git a/src/kernel/emulation/linux/signal/sigexc.c b/src/kernel/emulation/linux/signal/sigexc.c index 34f1a09d4..17b39c1dd 100644 --- a/src/kernel/emulation/linux/signal/sigexc.c +++ b/src/kernel/emulation/linux/signal/sigexc.c @@ -152,7 +152,7 @@ void sigrt_handler(int signum, struct linux_siginfo* info, void* ctxt) darling_sigexc_self(); // Stop on attach - sigexc_handler(LINUX_SIGSTOP, NULL, ctxt); + sigexc_handler(LINUX_SIGSTOP, NULL, (struct linux_ucontext*) ctxt); } else if (((uint32_t) info->si_value) == SIGRT_MAGIC_DISABLE_SIGEXC) { @@ -174,7 +174,7 @@ void sigrt_handler(int signum, struct linux_siginfo* info, void* ctxt) // This is only used to pass a SIGSTOP to the traced process (from the debugger) // and have it passed back through the sigexc mechanism. // See sys_wait4(). - sigexc_handler(-sig, NULL, NULL); + sigexc_handler(-sig, NULL, (struct linux_ucontext*) ctxt); } else {