From: Christian Brauner Date: Thu, 14 Jun 2018 20:05:09 +0000 (+0200) Subject: coverity: #1425760 X-Git-Tag: lxc-2.0.10~95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65d63c505e86aab7b0856327a4274a985f05a59f;p=thirdparty%2Flxc.git coverity: #1425760 Use of untrusted scalar value Signed-off-by: Christian Brauner --- diff --git a/src/lxc/tools/lxc_ls.c b/src/lxc/tools/lxc_ls.c index fd236c947..a7e0ed220 100644 --- a/src/lxc/tools/lxc_ls.c +++ b/src/lxc/tools/lxc_ls.c @@ -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; }