cmdline: use mountAddMountPt instead of adding structs explicitly
This commit is contained in:
parent
6ada77d4cf
commit
a39f76924d
66
cmdline.c
66
cmdline.c
@ -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)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user