]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
coverity: #1425760
authorChristian Brauner <christian.brauner@ubuntu.com>
Thu, 14 Jun 2018 20:05:09 +0000 (22:05 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Mon, 10 Dec 2018 08:17:30 +0000 (09:17 +0100)
Use of untrusted scalar value

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

index fd236c947cc193a14ca35007750c98a19830119a..a7e0ed22073b1cba936169704ade3f4d45e94dde 100644 (file)
@@ -1114,17 +1114,27 @@ static int ls_serialize(int wpipefd, struct ls *n)
 
 static int ls_recv_str(int fd, char **buf)
 {
+       ssize_t ret;
        size_t slen = 0;
-       if (lxc_read_nointr(fd, &slen, sizeof(slen)) != sizeof(slen))
+
+       ret = lxc_read_nointr(fd, &slen, sizeof(slen));
+       if (ret != sizeof(slen))
                return -1;
+
        if (slen > 0) {
                *buf = malloc(sizeof(char) * (slen + 1));
                if (!*buf)
                        return -1;
-               if (lxc_read_nointr(fd, *buf, slen) != (ssize_t)slen)
+
+               ret = lxc_read_nointr(fd, *buf, slen);
+               if (ret != (ssize_t)slen) {
+                       free(*buf);
                        return -1;
+               }
+
                (*buf)[slen] = '\0';
        }
+
        return 0;
 }