ptrace: add error stub to prevent mcexec from waiting
In LTP's ptrace03 test, there is a exit() preceded by ptrace(PTRACE_TRACEME). In this case, processes will be usually finished immediately. But mcexec will fall into waiting for parent's ptrace(PTRACE_CONT), because mcexec sends itself a signal in processing of exit().
This commit is contained in:
@@ -55,6 +55,7 @@ SYSCALL_DELEGATED(79, getcwd)
|
|||||||
SYSCALL_DELEGATED(89, readlink)
|
SYSCALL_DELEGATED(89, readlink)
|
||||||
SYSCALL_DELEGATED(96, gettimeofday)
|
SYSCALL_DELEGATED(96, gettimeofday)
|
||||||
SYSCALL_HANDLED(97, getrlimit)
|
SYSCALL_HANDLED(97, getrlimit)
|
||||||
|
SYSCALL_HANDLED(101, ptrace)
|
||||||
SYSCALL_DELEGATED(102, getuid)
|
SYSCALL_DELEGATED(102, getuid)
|
||||||
SYSCALL_DELEGATED(104, getgid)
|
SYSCALL_DELEGATED(104, getgid)
|
||||||
SYSCALL_DELEGATED(107, geteuid)
|
SYSCALL_DELEGATED(107, geteuid)
|
||||||
|
|||||||
@@ -1858,6 +1858,17 @@ SYSCALL_DECLARE(getrlimit)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SYSCALL_DECLARE(ptrace)
|
||||||
|
{
|
||||||
|
const int request = ihk_mc_syscall_arg0(ctx);
|
||||||
|
const long pid = ihk_mc_syscall_arg1(ctx);
|
||||||
|
void * const addr = (void *)ihk_mc_syscall_arg2(ctx);
|
||||||
|
void * const data = (void *)ihk_mc_syscall_arg3(ctx);
|
||||||
|
|
||||||
|
kprintf("ptrace(%d,%ld,%p,%p): ENOSYS\n", request, pid, addr, data);
|
||||||
|
return -ENOSYS;
|
||||||
|
}
|
||||||
|
|
||||||
SYSCALL_DECLARE(sched_setaffinity)
|
SYSCALL_DECLARE(sched_setaffinity)
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
|
|||||||
Reference in New Issue
Block a user