[CRIU] [PATCHv2 9/9] vdso/ia32: Don't unmap rt-vdso
Dmitry Safonov
dsafonov at virtuozzo.com
Mon Jul 10 21:24:24 MSK 2017
Found with fault-injected jump trampolines in vdso,
that on ia32 tests rt-vdso got unmapped.
I've fixed it previously, but have forgot it during
debugging vdso cleanup.
Fixes: commit 8544895a528b ("ia32/restorer: move 32-bit pie unmap to x86")
Signed-off-by: Dmitry Safonov <dsafonov at virtuozzo.com>
---
criu/arch/x86/restorer_unmap.S | 1 +
criu/pie/restorer.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/criu/arch/x86/restorer_unmap.S b/criu/arch/x86/restorer_unmap.S
index 09c4c9583da3..d721eaf97d96 100644
--- a/criu/arch/x86/restorer_unmap.S
+++ b/criu/arch/x86/restorer_unmap.S
@@ -6,6 +6,7 @@ ENTRY(__export_unmap_compat)
.code32
mov bootstrap_start, %ebx
mov bootstrap_len, %ecx
+ sub vdso_rt_size, %ecx
movl $__NR32_munmap, %eax
int $0x80
int $0x03 /* Guard */
diff --git a/criu/pie/restorer.c b/criu/pie/restorer.c
index 66b8e2015a1f..efcac8389e79 100644
--- a/criu/pie/restorer.c
+++ b/criu/pie/restorer.c
@@ -1040,7 +1040,7 @@ static void restore_posix_timers(struct task_restore_args *args)
* trap us on the exit from sys_munmap.
*/
#ifdef CONFIG_VDSO
-static unsigned long vdso_rt_size;
+unsigned long vdso_rt_size = 0;
#else
#define vdso_rt_size (0)
#endif
--
2.13.1
More information about the CRIU
mailing list