cr-exec: check syscall's number right before injecting it
So, I made a mistake in find_syscall: it can't use arch_task_compatible to find out in which mode the application is (native/compat). The reason is that arch_task_compatible uses PTRACE_GETREGSET. And at the moment of find_syscall we haven't yet seized the task. In this patch I move syscall's number check right before injecting a syscall, where we have parasite_ctl with all needed information about task's mode. This makes error-path for wrong syscall number longer and subtler (includes curing now), but I think it's a corner-case, so as it makes error-less path to execute_syscall shorter and without additional ptrace syscalls, it's better. Reported-by:Andrew Vagin <avagin@virtuozzo.com> Cc: Andrew Vagin <avagin@virtuozzo.com> Cc: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Dmitry Safonov <dsafonov@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
Showing
Please
register
or
sign in
to comment