From: Christian Brauner Date: Sat, 28 Oct 2017 20:05:18 +0000 (+0200) Subject: handler: make name argument const X-Git-Tag: lxc-2.0.10~603 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b25fbb6611777b4d4f1c8f13dce70ed8e218be48;p=thirdparty%2Flxc.git handler: make name argument const There's no obvious need to strdup() the name of the container in the handler. We can simply make this a pointer to the memory allocated in lxc_container_new(). Signed-off-by: Christian Brauner --- diff --git a/src/lxc/commands.c b/src/lxc/commands.c index 647014d1b..faa5e6e2a 100644 --- a/src/lxc/commands.c +++ b/src/lxc/commands.c @@ -781,7 +781,7 @@ static int lxc_cmd_get_name_callback(int fd, struct lxc_cmd_req *req, memset(&rsp, 0, sizeof(rsp)); - rsp.data = handler->name; + rsp.data = (char *)handler->name; rsp.datalen = strlen(handler->name) + 1; rsp.ret = 0; diff --git a/src/lxc/network.c b/src/lxc/network.c index 9b37e53d2..d4d1f8340 100644 --- a/src/lxc/network.c +++ b/src/lxc/network.c @@ -2022,7 +2022,7 @@ int lxc_find_gateway_addresses(struct lxc_handler *handler) } #define LXC_USERNIC_PATH LIBEXECDIR "/lxc/lxc-user-nic" -static int lxc_create_network_unpriv_exec(const char *lxcpath, char *lxcname, +static int lxc_create_network_unpriv_exec(const char *lxcpath, const char *lxcname, struct lxc_netdev *netdev, pid_t pid) { int ret; @@ -2166,7 +2166,7 @@ static int lxc_create_network_unpriv_exec(const char *lxcpath, char *lxcname, return 0; } -static int lxc_delete_network_unpriv_exec(const char *lxcpath, char *lxcname, +static int lxc_delete_network_unpriv_exec(const char *lxcpath, const char *lxcname, struct lxc_netdev *netdev, const char *netns_path) { @@ -2380,7 +2380,7 @@ int lxc_create_network_priv(struct lxc_handler *handler) return 0; } -int lxc_network_move_created_netdev_priv(const char *lxcpath, char *lxcname, +int lxc_network_move_created_netdev_priv(const char *lxcpath, const char *lxcname, struct lxc_list *network, pid_t pid) { int ret; @@ -2420,7 +2420,7 @@ int lxc_network_move_created_netdev_priv(const char *lxcpath, char *lxcname, return 0; } -int lxc_create_network_unpriv(const char *lxcpath, char *lxcname, +int lxc_create_network_unpriv(const char *lxcpath, const char *lxcname, struct lxc_list *network, pid_t pid) { struct lxc_list *iterator; diff --git a/src/lxc/network.h b/src/lxc/network.h index ef89e6fc7..50f5b51c2 100644 --- a/src/lxc/network.h +++ b/src/lxc/network.h @@ -293,12 +293,12 @@ extern int setup_private_host_hw_addr(char *veth1); extern int netdev_get_mtu(int ifindex); extern int lxc_create_network_priv(struct lxc_handler *handler); extern int lxc_network_move_created_netdev_priv(const char *lxcpath, - char *lxcname, + const char *lxcname, struct lxc_list *network, pid_t pid); extern void lxc_delete_network(struct lxc_handler *handler); extern int lxc_find_gateway_addresses(struct lxc_handler *handler); -extern int lxc_create_network_unpriv(const char *lxcpath, char *lxcname, +extern int lxc_create_network_unpriv(const char *lxcpath, const char *lxcname, struct lxc_list *network, pid_t pid); extern int lxc_requests_empty_network(struct lxc_handler *handler); extern int lxc_restore_phys_nics_to_netns(struct lxc_handler *handler); diff --git a/src/lxc/start.c b/src/lxc/start.c index 2630eb96e..d565438af 100644 --- a/src/lxc/start.c +++ b/src/lxc/start.c @@ -522,9 +522,6 @@ void lxc_free_handler(struct lxc_handler *handler) if (handler->state_socket_pair[1] >= 0) close(handler->state_socket_pair[1]); - if (handler->name) - free(handler->name); - handler->conf = NULL; free(handler); } @@ -558,11 +555,7 @@ struct lxc_handler *lxc_init_handler(const char *name, struct lxc_conf *conf, for (i = 0; i < LXC_NS_MAX; i++) handler->nsfd[i] = -1; - handler->name = strdup(name); - if (!handler->name) { - ERROR("failed to allocate memory"); - goto on_error; - } + handler->name = name; if (daemonize && !handler->conf->reboot) { /* Create socketpair() to synchronize on daemonized startup. @@ -783,7 +776,6 @@ void lxc_fini(const char *name, struct lxc_handler *handler) if (handler->conf->ephemeral == 1 && handler->conf->reboot != 1) lxc_destroy_container_on_signal(handler, name); - free(handler->name); free(handler); } diff --git a/src/lxc/start.h b/src/lxc/start.h index 5955dfd79..be724bcaf 100644 --- a/src/lxc/start.h +++ b/src/lxc/start.h @@ -67,10 +67,10 @@ struct lxc_handler { /* Socketpair to synchronize processes during container creation. */ int sync_sock[2]; - /* The name of the container. */ - char *name; + /* Pointer to the name of the container. Do not free! */ + const char *name; - /* The path the container is running in. */ + /* Pointer to the path the container. Do not free! */ const char *lxcpath; /* Whether the container's startup process euid is 0. */