]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
coverity: #1425859
authorChristian Brauner <christian.brauner@ubuntu.com>
Sat, 9 Dec 2017 18:53:43 +0000 (19:53 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Fri, 15 Dec 2017 12:35:58 +0000 (13:35 +0100)
check return value of snprintf()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/utils.c

index 2babe8b01dc2d0daba2897297ddc8058a5e4e820..36dd23f3ec6402fb66087a0c5f6f2598db523038 100644 (file)
@@ -717,10 +717,12 @@ char *lxc_deslashify(const char *path)
 
 char *lxc_append_paths(const char *first, const char *second)
 {
-       size_t len = strlen(first) + strlen(second) + 1;
-       const char *pattern = "%s%s";
+       int ret;
+       size_t len;
        char *result = NULL;
+       const char *pattern = "%s%s";
 
+       len = strlen(first) + strlen(second) + 1;
        if (second[0] != '/') {
                len += 1;
                pattern = "%s/%s";
@@ -730,7 +732,12 @@ char *lxc_append_paths(const char *first, const char *second)
        if (!result)
                return NULL;
 
-       snprintf(result, len, pattern, first, second);
+       ret = snprintf(result, len, pattern, first, second);
+       if (ret < 0 || (size_t)ret >= len) {
+               free(result);
+               return NULL;
+       }
+
        return result;
 }