static bool arg_root_rw = false;
static int add_cryptsetup(const char *id, const char *what, bool rw, bool require, char **device) {
- _cleanup_free_ char *e = NULL, *n = NULL, *p = NULL, *d = NULL, *id_escaped = NULL, *what_escaped = NULL;
+ _cleanup_free_ char *e = NULL, *n = NULL, *d = NULL, *id_escaped = NULL, *what_escaped = NULL;
_cleanup_fclose_ FILE *f = NULL;
- char *ret;
+ const char *p;
int r;
assert(id);
if (!what_escaped)
return log_oom();
- p = strjoin(arg_dest, "/", n);
- if (!p)
- return log_oom();
-
+ p = strjoina(arg_dest, "/", n);
f = fopen(p, "wxe");
if (!f)
return log_error_errno(errno, "Failed to create unit file %s: %m", p);
return r;
}
- free(p);
- p = strjoin(arg_dest, "/dev-mapper-", e, ".device.d/50-job-timeout-sec-0.conf");
- if (!p)
- return log_oom();
-
+ p = strjoina(arg_dest, "/dev-mapper-", e, ".device.d/50-job-timeout-sec-0.conf");
mkdir_parents_label(p, 0755);
r = write_string_file(p,
"# Automatically generated by systemd-gpt-auto-generator\n\n"
if (r < 0)
return log_error_errno(r, "Failed to write device drop-in: %m");
- ret = strappend("/dev/mapper/", id);
- if (!ret)
- return log_oom();
+ if (device) {
+ char *ret;
+
+ ret = strappend("/dev/mapper/", id);
+ if (!ret)
+ return log_oom();
- if (device)
*device = ret;
+ }
+
return 0;
}
usec_t timeout) {
_cleanup_free_ char *unit = NULL;
- _cleanup_free_ char *opt, *p = NULL;
_cleanup_fclose_ FILE *f = NULL;
+ const char *opt = "noauto", *p;
int r;
assert(id);
assert(description);
if (options)
- opt = strjoin(options, ",noauto");
- else
- opt = strdup("noauto");
- if (!opt)
- return log_oom();
+ opt = strjoina(options, ",", opt);
r = add_mount(id,
what,
if (r < 0)
return log_error_errno(r, "Failed to generate unit name: %m");
- p = strjoin(arg_dest, "/", unit);
- if (!p)
- return log_oom();
-
+ p = strjoina(arg_dest, "/", unit);
f = fopen(p, "wxe");
if (!f)
return log_error_errno(errno, "Failed to create unit file %s: %m", unit);