Messages in this thread | | | Date | Mon, 28 Nov 2011 20:06:14 +0100 | From | Oleg Nesterov <> | Subject | [PATCH RFC 0/5] uprobes: kill xol vma |
| |
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(-)
| |