cmdline: use mountAddMountPt instead of adding structs explicitly

This commit is contained in:
Robert Swiecki 2017-10-07 22:30:19 +02:00
parent 6ada77d4cf
commit a39f76924d

View File

@ -268,8 +268,9 @@ __rlim64_t cmdlineParseRLimit(int res, const char *optarg, unsigned long mul)
return cur.rlim_max; return cur.rlim_max;
} }
if (utilIsANumber(optarg) == false) { if (utilIsANumber(optarg) == false) {
LOG_F("RLIMIT %d needs a numeric or 'max'/'hard'/'def'/'soft'/'inf' value ('%s' provided)", res, LOG_F
optarg); ("RLIMIT %d needs a numeric or 'max'/'hard'/'def'/'soft'/'inf' value ('%s' provided)",
res, optarg);
} }
__rlim64_t val = strtoull(optarg, NULL, 0) * mul; __rlim64_t val = strtoull(optarg, NULL, 0) * mul;
if (val == ULLONG_MAX && errno != 0) { if (val == ULLONG_MAX && errno != 0) {
@ -755,54 +756,31 @@ bool cmdlineParse(int argc, char *argv[], struct nsjconf_t * nsjconf)
} }
if (nsjconf->mount_proc == true) { if (nsjconf->mount_proc == true) {
struct mounts_t *p = utilMalloc(sizeof(struct mounts_t)); if (!mountAddMountPt(nsjconf, /* src= */ NULL, "/proc", "proc", "",
p->src = NULL; nsjconf->is_root_rw == false ? MS_RDONLY : 0, /* isDir= */
p->src_content = NULL; true,
p->src_content_len = 0; /* mandatory= */ true, NULL, NULL, NULL, 0,
p->dst = "/proc"; /* is_symlink= */
p->flags = 0; false)) {
if (nsjconf->is_root_rw == false) { return false;
p->flags |= MS_RDONLY;
} }
p->options = "";
p->fs_type = "proc";
p->isDir = true;
p->isSymlink = false;
p->mandatory = true;
TAILQ_INSERT_HEAD(&nsjconf->mountpts, p, pointers);
} }
if (nsjconf->chroot != NULL) { if (nsjconf->chroot != NULL) {
struct mounts_t *p = utilMalloc(sizeof(struct mounts_t)); if (!mountAddMountPt
p->src = nsjconf->chroot; (nsjconf, nsjconf->chroot, "/", /* fs_type= */ "", /* options= */ "",
p->src_content = NULL; nsjconf->is_root_rw == false ? MS_RDONLY : 0, /* isDir= */ true,
p->src_content_len = 0; /* mandatory= */ true, NULL, NULL, NULL, 0, /* is_symlink= */ false)) {
p->dst = "/"; return false;
p->flags = MS_BIND | MS_REC;
if (nsjconf->is_root_rw == false) {
p->flags |= MS_RDONLY;
} }
p->options = "";
p->fs_type = "";
p->isDir = true;
p->isSymlink = false;
p->mandatory = true;
TAILQ_INSERT_HEAD(&nsjconf->mountpts, p, pointers);
} else { } else {
struct mounts_t *p = utilMalloc(sizeof(struct mounts_t)); if (!mountAddMountPt(nsjconf, /* src= */ NULL, "/", "tmpfs", /* options= */ "",
p->src = NULL; nsjconf->is_root_rw == false ? MS_RDONLY : 0, /* isDir= */
p->src_content = NULL; true,
p->src_content_len = 0; /* mandatory= */ true, NULL, NULL, NULL, 0,
p->dst = "/"; /* is_symlink= */
p->flags = 0; false)) {
if (nsjconf->is_root_rw == false) { return false;
p->flags |= MS_RDONLY;
} }
p->options = "";
p->fs_type = "tmpfs";
p->isDir = true;
p->isSymlink = false;
p->mandatory = true;
TAILQ_INSERT_HEAD(&nsjconf->mountpts, p, pointers);
} }
if (TAILQ_EMPTY(&nsjconf->uids)) { if (TAILQ_EMPTY(&nsjconf->uids)) {