]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
commands: handle old clients for LXC_CMD_GET_CGROUP_CTX 3690/head
authorChristian Brauner <christian.brauner@ubuntu.com>
Tue, 23 Feb 2021 20:06:56 +0000 (21:06 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 23 Feb 2021 20:11:10 +0000 (21:11 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/commands.c

index 6df08f5ecf89c480301a09e277d6cdf7f3a76a49..7564c70c859102bf8ba120de9e054d54b5767845 100644 (file)
@@ -198,8 +198,8 @@ static int lxc_cmd_rsp_recv(int sock, struct lxc_cmd_rr *cmd)
                rsp->data = INT_TO_PTR(move_fd(fds->fd[0]));
                return log_debug(fret ?: ret, "Finished processing \"%s\"", reqstr);
        case LXC_CMD_GET_CGROUP_CTX:
-               if (rsp->datalen > sizeof(struct cgroup_ctx))
-                       return syserrno_set(-EINVAL, "Invalid response size from server for \"%s\"", reqstr);
+               if ((rsp->datalen == 0) || (rsp->datalen > sizeof(struct cgroup_ctx)))
+                       return syserrno_set(fret ?: -EINVAL, "Invalid response size from server for \"%s\"", reqstr);
 
                /* Don't pointlessly allocate. */
                rsp->data = (void *)cmd->req.data;