aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libminijail.c19
-rw-r--r--libminijail.h3
2 files changed, 13 insertions, 9 deletions
diff --git a/libminijail.c b/libminijail.c
index a444474..f42ac2f 100644
--- a/libminijail.c
+++ b/libminijail.c
@@ -1591,7 +1591,7 @@ static int mount_one(const struct minijail *j, struct mountpoint *m,
setup_mount_destination(m->src, dest, j->uid, j->gid,
(m->flags & MS_BIND), &original_mnt_flags);
if (ret) {
- warn("creating mount target '%s' failed", dest);
+ warn("cannot create mount target '%s'", dest);
goto error;
}
@@ -1614,7 +1614,8 @@ static int mount_one(const struct minijail *j, struct mountpoint *m,
ret = mount(m->src, dest, m->type, m->flags, m->data);
if (ret) {
- pwarn("bind: %s -> %s flags=%#lx", m->src, dest, m->flags);
+ pwarn("cannot bind-mount '%s' as '%s' with flags %#lx", m->src,
+ dest, m->flags);
goto error;
}
@@ -1623,8 +1624,10 @@ static int mount_one(const struct minijail *j, struct mountpoint *m,
mount(m->src, dest, NULL,
m->flags | original_mnt_flags | MS_REMOUNT, m->data);
if (ret) {
- pwarn("bind remount: %s -> %s flags=%#lx", m->src, dest,
- m->flags | original_mnt_flags | MS_REMOUNT);
+ pwarn(
+ "cannot bind-remount '%s' as '%s' with flags %#lx",
+ m->src, dest,
+ m->flags | original_mnt_flags | MS_REMOUNT);
goto error;
}
}
@@ -1650,12 +1653,10 @@ static void process_mounts_or_die(const struct minijail *j)
pdie("mount_dev failed");
if (j->mounts_head && mount_one(j, j->mounts_head, dev_path)) {
- if (dev_path) {
- int saved_errno = errno;
+ if (dev_path)
mount_dev_cleanup(dev_path);
- errno = saved_errno;
- }
- pdie("mount_one failed");
+
+ _exit(MINIJAIL_ERR_MOUNT);
}
/*
diff --git a/libminijail.h b/libminijail.h
index 9eefe0a..03b246c 100644
--- a/libminijail.h
+++ b/libminijail.h
@@ -42,6 +42,9 @@ enum {
/* (MINIJAIL_ERR_SIG_BASE + n) if process killed by signal n != SIGSYS */
MINIJAIL_ERR_SIG_BASE = 128,
+ /* Cannot mount a file or folder in mount namespace */
+ MINIJAIL_ERR_MOUNT = 251,
+
MINIJAIL_ERR_PRELOAD = 252,
/* Process killed by SIGSYS */