}
static int setup_boot_id(const char *dest) {
- char *from = NULL, *to = NULL;
+ char _cleanup_free_ *from = NULL, *to = NULL;
sd_id128_t rnd;
char as_uuid[37];
int r;
* the container gets a new one */
from = strappend(dest, "/dev/proc-sys-kernel-random-boot-id");
- if (!from) {
- r = log_oom();
- goto finish;
- }
-
to = strappend(dest, "/proc/sys/kernel/random/boot_id");
- if (!to) {
- r = log_oom();
- goto finish;
- }
+ if (!from || !to)
+ return log_oom();
r = sd_id128_randomize(&rnd);
if (r < 0) {
log_error("Failed to generate random boot id: %s", strerror(-r));
- goto finish;
+ return r;
}
snprintf(as_uuid, sizeof(as_uuid),
r = write_one_line_file(from, as_uuid);
if (r < 0) {
log_error("Failed to write boot id: %s", strerror(-r));
- goto finish;
+ return r;
}
if (mount(from, to, "bind", MS_BIND, NULL) < 0) {
mount(from, to, "bind", MS_BIND|MS_REMOUNT|MS_RDONLY, NULL);
unlink(from);
-
-finish:
- free(from);
- free(to);
-
return r;
}
NULSTR_FOREACH(d, devnodes) {
struct stat st;
- char *from = NULL, *to = NULL;
+ char _cleanup_free_ *from = NULL, *to = NULL;
asprintf(&from, "/dev/%s", d);
asprintf(&to, "%s/dev/%s", dest, d);
if (!from || !to) {
- log_error("Failed to allocate devnode path");
-
- free(from);
- free(to);
-
- from = to = NULL;
+ log_oom();
if (r == 0)
r = -ENOMEM;
} else if (!S_ISCHR(st.st_mode) && !S_ISBLK(st.st_mode)) {
- log_error("%s is not a char or block device, cannot copy.", from);
+ log_error("%s is not a char or block device, cannot copy", from);
if (r == 0)
r = -EIO;
if (r == 0)
r = -errno;
}
-
- free(from);
- free(to);
}
umask(u);
static int setup_dev_console(const char *dest, const char *console) {
struct stat st;
- char *to = NULL;
+ char _cleanup_free_ *to = NULL;
int r;
mode_t u;
}
finish:
- free(to);
umask(u);
return r;
}
static int setup_kmsg(const char *dest, int kmsg_socket) {
- char *from = NULL, *to = NULL;
+ char _cleanup_free_ *from = NULL, *to = NULL;
int r, fd, k;
mode_t u;
union {
unlink(from);
finish:
- free(from);
- free(to);
umask(u);
return r;