]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
lxc/utils: improve choose_init code readability 356/head
authorSilvio Fricke <silvio.fricke@gmail.com>
Wed, 12 Nov 2014 07:38:59 +0000 (08:38 +0100)
committerSilvio Fricke <silvio.fricke@gmail.com>
Wed, 12 Nov 2014 08:17:25 +0000 (09:17 +0100)
Signed-off-by: Silvio Fricke <silvio.fricke@gmail.com>
src/lxc/utils.c

index 34743dd76d4eabecc8a2d4de800314b0ba380de6..3f5b2240db9eb1a190b77b71e7405ae2eea728c2 100644 (file)
@@ -1391,6 +1391,8 @@ bool file_exists(const char *f)
 char *choose_init(const char *rootfs)
 {
        char *retv = NULL;
+       const char *empty = "",
+                  *tmp;
        int ret, env_set = 0;
        struct stat mystat;
 
@@ -1415,9 +1417,11 @@ char *choose_init(const char *rootfs)
                return NULL;
 
        if (rootfs)
-               ret = snprintf(retv, PATH_MAX, "%s/%s/init.lxc", rootfs, SBINDIR);
+               tmp = rootfs;
        else
-               ret = snprintf(retv, PATH_MAX, SBINDIR "/init.lxc");
+               tmp = empty;
+
+       ret = snprintf(retv, PATH_MAX, "%s/%s/%s", tmp, SBINDIR, "/init.lxc");
        if (ret < 0 || ret >= PATH_MAX) {
                ERROR("pathname too long");
                goto out1;
@@ -1427,10 +1431,7 @@ char *choose_init(const char *rootfs)
        if (ret == 0)
                return retv;
 
-       if (rootfs)
-               ret = snprintf(retv, PATH_MAX, "%s/%s/lxc/lxc-init", rootfs, LXCINITDIR);
-       else
-               ret = snprintf(retv, PATH_MAX, LXCINITDIR "/lxc/lxc-init");
+       ret = snprintf(retv, PATH_MAX, "%s/%s/%s", tmp, LXCINITDIR, "/lxc/lxc-init");
        if (ret < 0 || ret >= PATH_MAX) {
                ERROR("pathname too long");
                goto out1;
@@ -1440,10 +1441,7 @@ char *choose_init(const char *rootfs)
        if (ret == 0)
                return retv;
 
-       if (rootfs)
-               ret = snprintf(retv, PATH_MAX, "%s/usr/lib/lxc/lxc-init", rootfs);
-       else
-               ret = snprintf(retv, PATH_MAX, "/usr/lib/lxc/lxc-init");
+       ret = snprintf(retv, PATH_MAX, "%s/usr/lib/lxc/lxc-init", tmp);
        if (ret < 0 || ret >= PATH_MAX) {
                ERROR("pathname too long");
                goto out1;
@@ -1452,10 +1450,7 @@ char *choose_init(const char *rootfs)
        if (ret == 0)
                return retv;
 
-       if (rootfs)
-               ret = snprintf(retv, PATH_MAX, "%s/sbin/lxc-init", rootfs);
-       else
-               ret = snprintf(retv, PATH_MAX, "/sbin/lxc-init");
+       ret = snprintf(retv, PATH_MAX, "%s/sbin/lxc-init", tmp);
        if (ret < 0 || ret >= PATH_MAX) {
                ERROR("pathname too long");
                goto out1;