#include "strv.h"
#include "util.h"
#include "path-util.h"
-#include "namespace.h"
#include "missing.h"
#include "execute.h"
#include "loopback-setup.h"
#include "dev-setup.h"
#include "def.h"
#include "label.h"
+#include "selinux-util.h"
+#include "namespace.h"
typedef enum MountMode {
/* This is ordered by priority! */
if (!mkdtemp(temporary_mount))
return -errno;
- dev = strappenda(temporary_mount, "/dev");
- mkdir(dev, 0755);
+ dev = strjoina(temporary_mount, "/dev");
+ (void)mkdir(dev, 0755);
if (mount("tmpfs", dev, "tmpfs", MS_NOSUID|MS_STRICTATIME, "mode=755") < 0) {
r = -errno;
goto fail;
}
- devpts = strappenda(temporary_mount, "/dev/pts");
- mkdir(devpts, 0755);
+ devpts = strjoina(temporary_mount, "/dev/pts");
+ (void)mkdir(devpts, 0755);
if (mount("/dev/pts", devpts, NULL, MS_BIND, NULL) < 0) {
r = -errno;
goto fail;
}
- devptmx = strappenda(temporary_mount, "/dev/ptmx");
+ devptmx = strjoina(temporary_mount, "/dev/ptmx");
symlink("pts/ptmx", devptmx);
- devshm = strappenda(temporary_mount, "/dev/shm");
- mkdir(devshm, 01777);
+ devshm = strjoina(temporary_mount, "/dev/shm");
+ (void)mkdir(devshm, 01777);
r = mount("/dev/shm", devshm, NULL, MS_BIND, NULL);
if (r < 0) {
r = -errno;
goto fail;
}
- devmqueue = strappenda(temporary_mount, "/dev/mqueue");
- mkdir(devmqueue, 0755);
+ devmqueue = strjoina(temporary_mount, "/dev/mqueue");
+ (void)mkdir(devmqueue, 0755);
mount("/dev/mqueue", devmqueue, NULL, MS_BIND, NULL);
- devhugepages = strappenda(temporary_mount, "/dev/hugepages");
- mkdir(devhugepages, 0755);
+ devhugepages = strjoina(temporary_mount, "/dev/hugepages");
+ (void)mkdir(devhugepages, 0755);
mount("/dev/hugepages", devhugepages, NULL, MS_BIND, NULL);
- devlog = strappenda(temporary_mount, "/dev/log");
+ devlog = strjoina(temporary_mount, "/dev/log");
symlink("/run/systemd/journal/dev-log", devlog);
NULSTR_FOREACH(d, devnodes) {
u = umask(0000);
- if (!mkdtemp(temporary_mount)) {
- log_error("Failed create temp dir: %m");
- return -errno;
- }
+ if (!mkdtemp(temporary_mount))
+ return log_error_errno(errno, "Failed create temp dir: %m");
- root = strappenda(temporary_mount, "/kdbus");
- mkdir(root, 0755);
+ root = strjoina(temporary_mount, "/kdbus");
+ (void)mkdir(root, 0755);
if (mount("tmpfs", root, "tmpfs", MS_NOSUID|MS_STRICTATIME, "mode=777") < 0) {
r = -errno;
goto fail;
/* create a new /dev/null dev node copy so we have some fodder to
* bind-mount the custom endpoint over. */
if (stat("/dev/null", &st) < 0) {
- log_error("Failed to stat /dev/null: %m");
+ log_error_errno(errno, "Failed to stat /dev/null: %m");
r = -errno;
goto fail;
}
- busnode = strappenda(root, "/bus");
+ busnode = strjoina(root, "/bus");
if (mknod(busnode, (st.st_mode & ~07777) | 0600, st.st_rdev) < 0) {
- log_error("mknod() for %s failed: %m", busnode);
+ log_error_errno(errno, "mknod() for %s failed: %m", busnode);
r = -errno;
goto fail;
}
r = mount(m->path, busnode, "bind", MS_BIND, NULL);
if (r < 0) {
- log_error("bind mount of %s failed: %m", m->path);
+ log_error_errno(errno, "bind mount of %s failed: %m", m->path);
r = -errno;
goto fail;
}
}
if (mount(root, basepath, NULL, MS_MOVE, NULL) < 0) {
- log_error("bind mount of %s failed: %m", basepath);
+ log_error_errno(errno, "bind mount of %s failed: %m", basepath);
r = -errno;
goto fail;
}
bool private_dev,
ProtectHome protect_home,
ProtectSystem protect_system,
- unsigned mount_flags) {
+ unsigned long mount_flags) {
BindMount *m, *mounts = NULL;
unsigned n;
RUN_WITH_UMASK(0000) {
char *y;
- y = strappenda(x, "/tmp");
+ y = strjoina(x, "/tmp");
if (mkdir(y, 0777 | S_ISVTX) < 0)
return -errno;
if (r < 0) {
char *t;
- t = strappenda(a, "/tmp");
+ t = strjoina(a, "/tmp");
rmdir(t);
rmdir(a);