From: Matthias Hardt Date: Mon, 9 Mar 2020 14:53:11 +0000 (+0100) Subject: commands_utils: fix socket leak in when adding state client X-Git-Tag: lxc-4.0.0~43^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d7aa5552448680c8ff7c4af8c19ea5dbd678e946;p=thirdparty%2Flxc.git commands_utils: fix socket leak in when adding state client If lxc_add_state_client() is called with the container already being in the desired state the client fd will never be closed and is leaking. This due to setting stay_connected in lxc_cmd for LXC_CMD_ADD_STATE_CLIENT. If the desired state isn't already achieved the client fd will later be closed by calling lxc_cmd_fd_cleanup() but in the other case the client configuration isn't added to the handlers state clients. So the client fd has to be closed explicitely. This is simply tested by starting container A and calling lxc-wait -n A -s RUNNING. Signed-off-by: Matthias Hardt --- diff --git a/src/lxc/commands_utils.c b/src/lxc/commands_utils.c index 67edc4ca9..a8f1e1705 100644 --- a/src/lxc/commands_utils.c +++ b/src/lxc/commands_utils.c @@ -195,6 +195,7 @@ int lxc_add_state_client(int state_client_fd, struct lxc_handler *handler, lxc_list_add_elem(tmplist, newclient); lxc_list_add_tail(&handler->conf->state_clients, tmplist); } else { + close(state_client_fd); return state; }