From df81acafa711811208442059e193f239c8f98c8d Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Tue, 24 Jul 2012 14:06:30 +0400 Subject: [PATCH] restorer: Calculate self-stack size with guard pages Otherwise we might not unmap the whole stack leaving a guard page in restoree memory map. Not a big deal but anyway. Signed-off-by: Cyrill Gorcunov Signed-off-by: Pavel Emelyanov --- restorer.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/restorer.c b/restorer.c index abaf531b8..95a79221b 100644 --- a/restorer.c +++ b/restorer.c @@ -301,6 +301,13 @@ long __export_restore_task(struct task_restore_core_args *args) if (!vma_entry_is(vma_entry, VMA_AREA_REGULAR)) continue; + /* + * The kernel doesn't show stack guard pages on + * proc output, so add pages here by hands. + */ + if (vma_entry_is(vma_entry, VMA_AREA_STACK)) + vma_entry->start -= PAGE_SIZE; + if (sys_munmap((void *)vma_entry->start, vma_entry_len(vma_entry))) { write_num_n(__LINE__); goto core_restore_end;