On 02.01.2017 04:44, David Holland wrote: > On Sat, Dec 31, 2016 at 08:57:16PM +0000, Kamil Rytarowski wrote: > > Update TODO.ptrace > > > > Mark exect(3) for removal, there is no use-case for it. exec() is already > > monitored and emits SIGTRAP when traced. > > Historically exect() is used by debuggers to start debuggees. While > it's equivalent to using PT_TRACE_ME followed by execve(), I think the > result is that the new process first stops immediately after the exec > finishes so that the debugger doesn't have to worry about stepping > through the exec call in its own code. > > This doesn't mean it shouldn't go away (or as much away as it can, > that is, to COMPAT_70) but I'm not convinced there's no case for it. >
So, can I change exect(3) to something like:
int
exect(const char *path, char *const argv[], char *const envp[])
{
if (ptrace(PT_TRACE_ME, 0, NULL, 0) == -1)
return -1;
return execve(path, argv, envp);
}
The current implementation of exect(3) (at least philosophically)
predates SIGTRAP on exec().
Personally, I have no opinion neither preference on it either way.
signature.asc
Description: OpenPGP digital signature
