]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
attach: don't shutdown ipc socket in child
authorStephen Barber <smbarber@chromium.org>
Tue, 18 Sep 2018 00:31:22 +0000 (17:31 -0700)
committerChristian Brauner <christian.brauner@ubuntu.com>
Mon, 10 Dec 2018 15:29:36 +0000 (16:29 +0100)
shutdown() affects sockets even across forked processes. The
attached child process doesn't have any interest in using the
IPC socket, so just close it in the child process and let the
intermediate process handle shutting it down.

This fixes a bug seen with lxc exec in crbug.com/884244

Signed-off-by: Stephen Barber <smbarber@chromium.org>
src/lxc/attach.c

index c4330895b8f03fa310c3b90db83b9a621c91dd08..9d36bfa1de5ca4f40ffddbc8e20b3bd1e9df9038 100644 (file)
@@ -706,7 +706,6 @@ struct attach_clone_payload {
 static void lxc_put_attach_clone_payload(struct attach_clone_payload *p)
 {
        if (p->ipc_socket >= 0) {
-               shutdown(p->ipc_socket, SHUT_RDWR);
                close(p->ipc_socket);
                p->ipc_socket = -EBADF;
        }
@@ -848,7 +847,6 @@ static int attach_child_main(struct attach_clone_payload *payload)
                        goto on_error;
                TRACE("Loaded seccomp profile");
        }
-       shutdown(payload->ipc_socket, SHUT_RDWR);
        close(payload->ipc_socket);
        payload->ipc_socket = -EBADF;
        lxc_proc_put_context_info(init_ctx);