[PATCH RFC 0/5] uprobes: kill xol vma

From: Oleg Nesterov
Date: Mon Nov 28 2011 - 14:11:53 EST


Hello.

On top of this series, not for inclusion yet, just to explain what
I mean. May be someone can test it ;)

This series kills xol_vma. Instead we use the per_cpu-like xol slots.

This is much more simple and efficient. And this of course solves
many problems we currently have with xol_vma.

For example, we simply can not trust it. We do not know what actually
we are going to execute in UTASK_SSTEP mode. An application can unmap
this area and then do mmap(PROT_EXEC|PROT_WRITE, MAP_FIXED) to fool
uprobes.

The only disadvantage is that this adds a bit more arch-dependant
code.

The main question, can this work? I know very little in this area.
And I am not sure if this can be ported to other architectures.

Please comment.

Oleg.

arch/x86/include/asm/fixmap.h | 9 +
arch/x86/include/asm/thread_info.h | 4
arch/x86/kernel/process.c | 6
arch/x86/kernel/uprobes.c | 26 +++-
include/linux/mm_types.h | 1
include/linux/uprobes.h | 27 ----
kernel/fork.c | 2
kernel/uprobes.c | 239 +++----------------------------------
8 files changed, 71 insertions(+), 243 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/