--- platform-tracing.c 2021-09-26 10:03:19.000000000 -0400 +++ /tmp/platform-tracing.c 2021-10-15 06:00:05.606329000 -0400 @@ -15,7 +15,10 @@ */ #include "includes.h" - +#if defined(HAVE_PROCCTL) +#include +#include +#endif #include #ifdef HAVE_SYS_PROCCTL_H #include @@ -40,22 +43,25 @@ /* On FreeBSD, we should make this process untraceable */ int disable_trace = PROC_TRACE_CTL_DISABLE; - if (procctl(P_PID, 0, PROC_TRACE_CTL, &disable_trace) && strict) - fatal("unable to make the process untraceable"); + if (procctl(P_PID, getpid(), PROC_TRACE_CTL, &disable_trace) && strict) + fatal("unable to make the process untraceable: %s for pid %d", + strerror(errno), (int)getpid()); #endif #if defined(HAVE_PRCTL) && defined(PR_SET_DUMPABLE) /* Disable ptrace on Linux without sgid bit */ if (prctl(PR_SET_DUMPABLE, 0) != 0 && strict) - fatal("unable to make the process undumpable"); + fatal("unable to make the process undumpable: %s", + strerror(errno)); #endif #if defined(HAVE_SETPFLAGS) && defined(__PROC_PROTECT) /* On Solaris, we should make this process untraceable */ if (setpflags(__PROC_PROTECT, 1) != 0 && strict) - fatal("unable to make the process untraceable"); + fatal("unable to make the process untraceable: %s", + strerror(errno)); #endif #ifdef PT_DENY_ATTACH /* Mac OS X */ if (ptrace(PT_DENY_ATTACH, 0, 0, 0) == -1 && strict) - fatal("unable to set PT_DENY_ATTACH"); + fatal("unable to set PT_DENY_ATTACH: %s", strerror(errno)); #endif }