Blob Blame History Raw
From 29396e3c5728e7e4a23c774d819c9227e663e2d1 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 21 May 2012 17:22:36 +0200
Subject: [PATCH] cryptsetup: a few simplifications (cherry picked from commit
 f7f21d33db5dfe88dc8175c61dada44013347729)

Conflicts:
	TODO
---
 src/core/mount.c                      |    3 ++-
 src/cryptsetup/cryptsetup-generator.c |   44 ++++++++++++++++++---------------
 2 files changed, 26 insertions(+), 21 deletions(-)

diff --git a/src/core/mount.c b/src/core/mount.c
index 68792da..e7a1c58 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -1653,7 +1653,8 @@ static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) {
                         goto clean_up;
                 }
 
-                if (asprintf(&o, "%s,%s", options, options2) < 0) {
+                o = join(options, ",", options2, NULL);
+                if (!o) {
                         r = -ENOMEM;
                         goto finish;
                 }
diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
index 5e92fb9..29a7bf5 100644
--- a/src/cryptsetup/cryptsetup-generator.c
+++ b/src/cryptsetup/cryptsetup-generator.c
@@ -76,31 +76,36 @@ static int create_disk(
         noauto = has_option(options, "noauto");
         nofail = has_option(options, "nofail");
 
-        if (!(n = unit_name_build_escape("cryptsetup", name, ".service"))) {
+        n = unit_name_build_escape("cryptsetup", name, ".service");
+        if (!n) {
                 r = -ENOMEM;
                 log_error("Failed to allocate unit name.");
                 goto fail;
         }
 
-        if (asprintf(&p, "%s/%s", arg_dest, n) < 0) {
+        p = join(arg_dest, "/", n, NULL);
+        if (!p) {
                 r = -ENOMEM;
                 log_error("Failed to allocate unit file name.");
                 goto fail;
         }
 
-        if (!(u = fstab_node_to_udev_node(device))) {
+        u = fstab_node_to_udev_node(device);
+        if (!u) {
                 r = -ENOMEM;
                 log_error("Failed to allocate device node.");
                 goto fail;
         }
 
-        if (!(d = unit_name_from_path(u, ".device"))) {
+        d = unit_name_from_path(u, ".device");
+        if (!d) {
                 r = -ENOMEM;
                 log_error("Failed to allocate device name.");
                 goto fail;
         }
 
-        if (!(f = fopen(p, "wxe"))) {
+        f = fopen(p, "wxe");
+        if (!f) {
                 r = -errno;
                 log_error("Failed to create unit file: %m");
                 goto fail;
@@ -164,13 +169,13 @@ static int create_disk(
 
         if (!noauto) {
 
-                if (asprintf(&to, "%s/%s.wants/%s", arg_dest, d, n) < 0) {
+                to = join(arg_dest, "/", d, ".wants/", n, NULL);
+                if (!to) {
                         r = -ENOMEM;
                         goto fail;
                 }
 
                 mkdir_parents(to, 0755);
-
                 if (symlink(from, to) < 0) {
                         log_error("Failed to create symlink '%s' to '%s': %m", from, to);
                         r = -errno;
@@ -178,38 +183,35 @@ static int create_disk(
                 }
 
                 free(to);
-                to = NULL;
 
                 if (!nofail)
-                        asprintf(&to, "%s/cryptsetup.target.requires/%s", arg_dest, n);
+                        to = join(arg_dest, "/cryptsetup.target.requires/", n, NULL);
                 else
-                        asprintf(&to, "%s/cryptsetup.target.wants/%s", arg_dest, n);
-
+                        to = join(arg_dest, "/cryptsetup.target.wants/", n, NULL);
                 if (!to) {
                         r = -ENOMEM;
                         goto fail;
                 }
 
                 mkdir_parents(to, 0755);
-
                 if (symlink(from, to) < 0) {
                         log_error("Failed to create symlink '%s' to '%s': %m", from, to);
                         r = -errno;
                         goto fail;
                 }
-        }
 
-        free(to);
-        to = NULL;
+                free(to);
+                to = NULL;
+        }
 
         e = unit_name_escape(name);
-        if (asprintf(&to, "%s/dev-mapper-%s.device.requires/%s", arg_dest, e, n) < 0) {
+        to = join(arg_dest, "/dev-mapper-", e, ".device.requires/", n, NULL);
+        if (!to) {
                 r = -ENOMEM;
                 goto fail;
         }
 
         mkdir_parents(to, 0755);
-
         if (symlink(from, to) < 0) {
                 log_error("Failed to create symlink '%s' to '%s': %m", from, to);
                 r = -errno;
@@ -252,7 +254,8 @@ int main(int argc, char *argv[]) {
 
         umask(0022);
 
-        if (!(f = fopen("/etc/crypttab", "re"))) {
+        f = fopen("/etc/crypttab", "re");
+        if (!f) {
 
                 if (errno == ENOENT)
                         r = EXIT_SUCCESS;
@@ -269,7 +272,7 @@ int main(int argc, char *argv[]) {
                 char *name = NULL, *device = NULL, *password = NULL, *options = NULL;
                 int k;
 
-                if (!(fgets(line, sizeof(line), f)))
+                if (!fgets(line, sizeof(line), f))
                         break;
 
                 n++;
@@ -278,7 +281,8 @@ int main(int argc, char *argv[]) {
                 if (*l == '#' || *l == 0)
                         continue;
 
-                if ((k = sscanf(l, "%ms %ms %ms %ms", &name, &device, &password, &options)) < 2 || k > 4) {
+                k = sscanf(l, "%ms %ms %ms %ms", &name, &device, &password, &options);
+                if (k < 2 || k > 4) {
                         log_error("Failed to parse /etc/crypttab:%u, ignoring.", n);
                         r = EXIT_FAILURE;
                         goto next;