]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
string_utils: convert to strnprintf()
authorChristian Brauner <christian.brauner@ubuntu.com>
Thu, 11 Feb 2021 09:49:10 +0000 (10:49 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Thu, 11 Feb 2021 09:49:10 +0000 (10:49 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/string_utils.c

index 9918299fb8e65c153090f8119867fc12aea0a376..574530bb429b0223f6aa6de5eba0af53e87bb463 100644 (file)
@@ -276,9 +276,9 @@ char *lxc_deslashify(const char *path)
 
 char *lxc_append_paths(const char *first, const char *second)
 {
+       __do_free char *result = NULL;
        int ret;
        size_t len;
-       char *result = NULL;
        int pattern_type = 0;
 
        len = strlen(first) + strlen(second) + 1;
@@ -287,20 +287,18 @@ char *lxc_append_paths(const char *first, const char *second)
                pattern_type = 1;
        }
 
-       result = calloc(1, len);
+       result = zalloc(len);
        if (!result)
                return NULL;
 
        if (pattern_type == 0)
-               ret = snprintf(result, len, "%s%s", first, second);
+               ret = strnprintf(result, len, "%s%s", first, second);
        else
-               ret = snprintf(result, len, "%s/%s", first, second);
-       if (ret < 0 || (size_t)ret >= len) {
-               free(result);
+               ret = strnprintf(result, len, "%s/%s", first, second);
+       if (ret < 0)
                return NULL;
-       }
 
-       return result;
+       return move_ptr(result);
 }
 
 bool lxc_string_in_list(const char *needle, const char *haystack, char _sep)