]> git.proxmox.com Git - mirror_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>
Tue, 12 Dec 2017 10:55:55 +0000 (11:55 +0100)
check return value of snprintf()

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

index ffed5bc68e8f54cb02d881faa1b865a7c1393c02..a82a2f49465e45e329e870aaa7b37461d205832c 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;
 }