• Cyrill Gorcunov's avatar
    restore: Don't unmap vdso proxy on final cleanup · 0707df77
    Cyrill Gorcunov authored
    In case if we need to use vdso proxy the memory area
    which holds restorer also has a place for vdso proxy
    code itself, so on final pass we should not unmap it,
    otherwise any call to vdso function will cause sigsegv.
    
    IOW, the memory before final "cleanup" pass of restorer
    might look as
    
        +-----------+---------+     +-------------+------+
        | bootstrap | rt-vdso | ... | application | vdso |
        +-----------+---------+     +-------------+------+
                           ^                         |
                           `-------------------------+
    
    and we have redirected "vdso" code to jump to "rt-vdso".
    After final pass the memory must look as
    
                    +---------+     +-------------+------+
                    | rt-vdso | ... | application | vdso |
                    +---------+     +-------------+------+
                           ^                         |
                           `-------------------------+
    
    I noticed this problem during container migration
    testing, the container itself was suspended on 2.6.32
    OpenVZ kernel with apache running inside, and any attempt
    to connect to apache caused apache to crash.
    Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
    0707df77
Name
Last commit
Last update
Documentation Loading commit data...
arch Loading commit data...
include Loading commit data...
lib Loading commit data...
pie Loading commit data...
protobuf Loading commit data...
scripts Loading commit data...
test Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Makefile Loading commit data...
Makefile.config Loading commit data...
Makefile.crtools Loading commit data...
Makefile.inc Loading commit data...
README Loading commit data...
cr-check.c Loading commit data...
cr-dump.c Loading commit data...
cr-exec.c Loading commit data...
cr-restore.c Loading commit data...
cr-service.c Loading commit data...
cr-show.c Loading commit data...
crtools Loading commit data...
crtools.c Loading commit data...
eventfd.c Loading commit data...
eventpoll.c Loading commit data...
fifo.c Loading commit data...
file-ids.c Loading commit data...
file-lock.c Loading commit data...
files-reg.c Loading commit data...
files.c Loading commit data...
fsnotify.c Loading commit data...
image-desc.c Loading commit data...
image.c Loading commit data...
ipc_ns.c Loading commit data...
kcmp-ids.c Loading commit data...
kerndat.c Loading commit data...
libnetlink.c Loading commit data...
log.c Loading commit data...
mem.c Loading commit data...
mount.c Loading commit data...
namespaces.c Loading commit data...
net.c Loading commit data...
netfilter.c Loading commit data...
page-pipe.c Loading commit data...
page-read.c Loading commit data...
page-xfer.c Loading commit data...
parasite-syscall.c Loading commit data...
pipes.c Loading commit data...
proc_parse.c Loading commit data...
protobuf-desc.c Loading commit data...
protobuf.c Loading commit data...
pstree.c Loading commit data...
ptrace.c Loading commit data...
rbtree.c Loading commit data...
security.c Loading commit data...
shmem.c Loading commit data...
sigframe.c Loading commit data...
signalfd.c Loading commit data...
sk-inet.c Loading commit data...
sk-netlink.c Loading commit data...
sk-packet.c Loading commit data...
sk-queue.c Loading commit data...
sk-tcp.c Loading commit data...
sk-unix.c Loading commit data...
sockets.c Loading commit data...
stats.c Loading commit data...
string.c Loading commit data...
sysctl.c Loading commit data...
tty.c Loading commit data...
tun.c Loading commit data...
util.c Loading commit data...
uts_ns.c Loading commit data...