]> 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>
Sun, 17 Dec 2017 15:33:53 +0000 (16:33 +0100)
check return value of snprintf()

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

index 9ea467d3cc2847c20a8496d4141cffccfe2438a5..3d34332c25dbccea439928296fd30ee2d37a8cb6 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;
 }