X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcryptsetup%2Fcryptsetup-generator.c;h=6e7b7070e22586f8b6b10c00ea86045c123e33c6;hb=1cda32b8a29750720872d3525084ac67b88e066f;hp=f714c8c2414b6c0f2f0de9373fadf21695b6db63;hpb=1c7327004ab6f0b91bdceb06877a3094c5fe2a4b;p=elogind.git diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c index f714c8c24..6e7b7070e 100644 --- a/src/cryptsetup/cryptsetup-generator.c +++ b/src/cryptsetup/cryptsetup-generator.c @@ -83,36 +83,32 @@ static int create_disk( n = unit_name_from_path_instance("systemd-cryptsetup", name, ".service"); if (!n) { - r = -ENOMEM; - log_error("Failed to allocate unit name."); + r = log_oom(); goto fail; } - p = join(arg_dest, "/", n, NULL); + p = strjoin(arg_dest, "/", n, NULL); if (!p) { - r = -ENOMEM; - log_error("Failed to allocate unit file name."); + r = log_oom(); goto fail; } u = fstab_node_to_udev_node(device); if (!u) { - r = -ENOMEM; - log_error("Failed to allocate device node."); + r = log_oom(); goto fail; } d = unit_name_from_path(u, ".device"); if (!d) { - r = -ENOMEM; - log_error("Failed to allocate device name."); + r = log_oom(); goto fail; } f = fopen(p, "wxe"); if (!f) { r = -errno; - log_error("Failed to create unit file: %m"); + log_error("Failed to create unit file %s: %m", p); goto fail; } @@ -124,7 +120,7 @@ static int create_disk( "SourcePath=/etc/crypttab\n" "Conflicts=umount.target\n" "DefaultDependencies=no\n" - "BindTo=%s dev-mapper-%%i.device\n" + "BindsTo=%s dev-mapper-%%i.device\n" "After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n" "Before=umount.target\n", d, d); @@ -164,20 +160,20 @@ static int create_disk( if (ferror(f)) { r = -errno; - log_error("Failed to write file: %m"); + log_error("Failed to write file %s: %m", p); goto fail; } if (asprintf(&from, "../%s", n) < 0) { - r = -ENOMEM; + r = log_oom(); goto fail; } if (!noauto) { - to = join(arg_dest, "/", d, ".wants/", n, NULL); + to = strjoin(arg_dest, "/", d, ".wants/", n, NULL); if (!to) { - r = -ENOMEM; + r = log_oom(); goto fail; } @@ -191,11 +187,11 @@ static int create_disk( free(to); if (!nofail) - to = join(arg_dest, "/cryptsetup.target.requires/", n, NULL); + to = strjoin(arg_dest, "/cryptsetup.target.requires/", n, NULL); else - to = join(arg_dest, "/cryptsetup.target.wants/", n, NULL); + to = strjoin(arg_dest, "/cryptsetup.target.wants/", n, NULL); if (!to) { - r = -ENOMEM; + r = log_oom(); goto fail; } @@ -211,9 +207,9 @@ static int create_disk( } e = unit_name_escape(name); - to = join(arg_dest, "/dev-mapper-", e, ".device.requires/", n, NULL); + to = strjoin(arg_dest, "/dev-mapper-", e, ".device.requires/", n, NULL); if (!to) { - r = -ENOMEM; + r = log_oom(); goto fail; } @@ -260,7 +256,7 @@ static int parse_proc_cmdline(void) { word = strndup(w, l); if (!word) { - r = -ENOMEM; + r = log_oom(); goto finish; } @@ -303,8 +299,7 @@ static int parse_proc_cmdline(void) { t = strv_append(arg_proc_cmdline_disks, word + 10); if (!t) { - log_error("Out of memory"); - r = -ENOMEM; + r = log_oom(); goto finish; } strv_free(arg_proc_cmdline_disks); @@ -317,8 +312,7 @@ static int parse_proc_cmdline(void) { t = strv_append(arg_proc_cmdline_disks, word + 13); if (!t) { - log_error("Out of memory"); - r = -ENOMEM; + r = log_oom(); goto finish; } strv_free(arg_proc_cmdline_disks); @@ -376,11 +370,11 @@ int main(int argc, char *argv[]) { if (startswith(p, "luks-")) p += 5; - name = strappend("luks-", *i); - device = strappend("UUID=", *i); + name = strappend("luks-", p); + device = strappend("UUID=", p); if (!name || !device) { - log_error("Out of memory"); + log_oom(); r = EXIT_FAILURE; free(name); free(device);