diff options
-rw-r--r-- | libminijail.c | 19 | ||||
-rw-r--r-- | libminijail.h | 3 |
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 */ |