[CRIU] [PATCH 20/23] ptrace.c: don't seize the task that doesn't run in the userspace

Alexander Kartashov alekskartashov at parallels.com
Mon Jan 14 05:19:59 EST 2013


On 01/14/2013 02:09 PM, Pavel Emelyanov wrote:
> Infection happens only after task gets stopped
> by tracer.

The problem is that the task may execute the code
outside the userspace when it's stopped. It's not
strictly speaking a kernel code since it's mapped
to the userspace but it's reas-only.

ARM has a peculiar implementation of cmpxchg:
the program that wants to use it jumps to some address
above TASK_SIZE, the kernel traps the jumps and
does needed work. In this case PC is above TASK_SIZE
but we are not executing the kernel code. The patch
prevents seizing the task in this state.

-- 
Sincerely yours,
Alexander Kartashov

Intern
Core team

www.parallels.com

Skype: aleksandr.kartashov
Email: alekskartashov at parallels.com



More information about the CRIU mailing list