aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/csource/linux_common.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-01-23 12:56:00 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-01-23 12:56:00 +0100
commita5b7566c4a75cf70b3714f8dd2edc772174f28f9 (patch)
tree028fbac2c634c0485227f24fcdf1a3e04965cc74 /pkg/csource/linux_common.go
parent3d76cc40d99e9f984db1ecc9310a8ea2004ec901 (diff)
executor: handle old and new selinux mount points
Diffstat (limited to 'pkg/csource/linux_common.go')
-rw-r--r--pkg/csource/linux_common.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/pkg/csource/linux_common.go b/pkg/csource/linux_common.go
index d9d8efaa6..c44bc68a6 100644
--- a/pkg/csource/linux_common.go
+++ b/pkg/csource/linux_common.go
@@ -1921,7 +1921,8 @@ static int namespace_sandbox_proc(void* arg)
fail("mkdir failed");
if (mkdir("./syz-tmp/newroot/dev", 0700))
fail("mkdir failed");
- if (mount("/dev", "./syz-tmp/newroot/dev", NULL, MS_BIND | MS_REC | MS_PRIVATE, NULL))
+ unsigned mount_flags = MS_BIND | MS_REC | MS_PRIVATE;
+ if (mount("/dev", "./syz-tmp/newroot/dev", NULL, mount_flags, NULL))
fail("mount(dev) failed");
if (mkdir("./syz-tmp/newroot/proc", 0700))
fail("mkdir failed");
@@ -1929,7 +1930,9 @@ static int namespace_sandbox_proc(void* arg)
fail("mount(proc) failed");
if (mkdir("./syz-tmp/newroot/selinux", 0700))
fail("mkdir failed");
- if (mount("/selinux", "./syz-tmp/newroot/selinux", NULL, MS_BIND | MS_REC | MS_PRIVATE, NULL))
+ const char* selinux_path = "./syz-tmp/newroot/selinux";
+ if (mount("/selinux", selinux_path, NULL, mount_flags, NULL) &&
+ mount("/sys/fs/selinux", selinux_path, NULL, mount_flags, NULL))
fail("mount(selinuxfs) failed");
if (mkdir("./syz-tmp/pivot", 0777))
fail("mkdir failed");