|
@@ -54,12 +54,12 @@ struct linux_binprm;
|
|
|
/*
|
|
|
* ptrace report for syscall entry and exit looks identical.
|
|
|
*/
|
|
|
-static inline void ptrace_report_syscall(struct pt_regs *regs)
|
|
|
+static inline int ptrace_report_syscall(struct pt_regs *regs)
|
|
|
{
|
|
|
int ptrace = current->ptrace;
|
|
|
|
|
|
if (!(ptrace & PT_PTRACED))
|
|
|
- return;
|
|
|
+ return 0;
|
|
|
|
|
|
ptrace_notify(SIGTRAP | ((ptrace & PT_TRACESYSGOOD) ? 0x80 : 0));
|
|
|
|
|
@@ -72,6 +72,8 @@ static inline void ptrace_report_syscall(struct pt_regs *regs)
|
|
|
send_sig(current->exit_code, current, 1);
|
|
|
current->exit_code = 0;
|
|
|
}
|
|
|
+
|
|
|
+ return fatal_signal_pending(current);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -96,8 +98,7 @@ static inline void ptrace_report_syscall(struct pt_regs *regs)
|
|
|
static inline __must_check int tracehook_report_syscall_entry(
|
|
|
struct pt_regs *regs)
|
|
|
{
|
|
|
- ptrace_report_syscall(regs);
|
|
|
- return 0;
|
|
|
+ return ptrace_report_syscall(regs);
|
|
|
}
|
|
|
|
|
|
/**
|