X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcryptsetup%2Fcryptsetup-generator.c;h=6e7b7070e22586f8b6b10c00ea86045c123e33c6;hb=b43d1d01eabe2cbbf393e8f56b76e182c6069c4c;hp=4056d1ddd205bf23e88b0335e305f21b32ca453c;hpb=d0d6944cdc17295b17875054ac05e667fe496fed;p=elogind.git diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c index 4056d1ddd..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; } @@ -120,11 +116,11 @@ static int create_disk( "# Automatically generated by systemd-cryptsetup-generator\n\n" "[Unit]\n" "Description=Cryptography Setup for %%I\n" - "Documentation=man:systemd-cryptsetup@.service(8)\n" + "Documentation=man:systemd-cryptsetup@.service(8) man:crypttab(5)\n" "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);