Skip to content

Commit

Permalink
cr-check: fill up a root task mount namespace
Browse files Browse the repository at this point in the history
A root mount namespace list is used to resolve paths to
unix sockets if they are placed on btrfs.

This patch fixes a crash:
 #0 mount_resolve_path at criu/mount.c:213
 #1 phys_stat_resolve_dev at criu/mount.c:240
 #2 phys_stat_dev_match at criu/mount.c:256
 #3 unix_process_name at criu/sk-unix.c:565
 #4 unix_collect_one at criu/sk-unix.c:620
 #5 unix_receive_one at criu/sk-unix.c:692
 #6 nlmsg_receive at criu/libnetlink.c:45
 #7 do_rtnl_req at criu/libnetlink.c:119
 #8 do_collect_req at criu/sockets.c:610
 #9 collect_sockets at criu/sockets.c:636

travis-ci: success for cr-check: fill up a root task mount namespace
https://bugzilla.redhat.com/show_bug.cgi?id=1381351
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
  • Loading branch information
avagin authored and xemul committed Nov 2, 2016
1 parent 0be53ee commit 4d5d46d
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions criu/cr-check.c
Original file line number Diff line number Diff line change
Expand Up @@ -962,7 +962,7 @@ static int (*chk_feature)(void);
} while (0)
int cr_check(void)
{
struct ns_id ns = { .type = NS_CRIU, .ns_pid = PROC_SELF, .nd = &mnt_ns_desc };
struct ns_id *ns;
int ret = 0;

if (!is_root_user())
Expand All @@ -977,9 +977,11 @@ int cr_check(void)
if (collect_pstree_ids())
return -1;

ns.id = root_item->ids->mnt_ns_id;
ns = lookup_ns_by_id(root_item->ids->mnt_ns_id, &mnt_ns_desc);
if (ns == NULL)
return -1;

mntinfo = collect_mntinfo(&ns, false);
mntinfo = collect_mntinfo(ns, false);
if (mntinfo == NULL)
return -1;

Expand Down

0 comments on commit 4d5d46d

Please sign in to comment.