[lxc-devel] [PATCH] close correct side of the pipe and increase buffer size by one to handle \n

Stéphane Graber stgraber at ubuntu.com
Mon Feb 17 22:24:34 UTC 2014


On Mon, Feb 17, 2014 at 03:08:18PM -0500, S.Çağlar Onur wrote:
> Signed-off-by: S.Çağlar Onur <caglar at 10ur.org>

Acked-by: Stéphane Graber <stgraber at ubuntu.com>

> ---
>  src/lxc/conf.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/src/lxc/conf.c b/src/lxc/conf.c
> index 10f46ae..175a82f 100644
> --- a/src/lxc/conf.c
> +++ b/src/lxc/conf.c
> @@ -3011,13 +3011,14 @@ void lxc_delete_network(struct lxc_handler *handler)
>  
>  #define LXC_USERNIC_PATH LIBEXECDIR "/lxc/lxc-user-nic"
>  
> +/* lxc-user-nic returns "interface_name:interface_name\n" */
> +#define MAX_BUFFER_SIZE IFNAMSIZ*2 + 2
>  static int unpriv_assign_nic(struct lxc_netdev *netdev, pid_t pid)
>  {
>  	pid_t child;
>  	int bytes, pipefd[2];
>  	char *token, *saveptr = NULL;
> -	/* lxc-user-nic returns "interface_name:interface_name" format */
> -	char buffer[IFNAMSIZ*2 + 1];
> +	char buffer[MAX_BUFFER_SIZE];
>  
>  	if (netdev->type != LXC_NET_VETH) {
>  		ERROR("nic type %d not support for unprivileged use",
> @@ -3043,7 +3044,7 @@ static int unpriv_assign_nic(struct lxc_netdev *netdev, pid_t pid)
>  		/* redirect the stdout to write-end of the pipe */
>  		dup2(pipefd[1], STDOUT_FILENO);
>  		/* close the write-end of the pipe */
> -		close(pipefd[0]);
> +		close(pipefd[1]);
>  
>  		// Call lxc-user-nic pid type bridge
>  		char pidstr[20];
> @@ -3058,7 +3059,7 @@ static int unpriv_assign_nic(struct lxc_netdev *netdev, pid_t pid)
>  	/* close the write-end of the pipe */
>  	close(pipefd[1]);
>  
> -	bytes = read(pipefd[0], &buffer, IFNAMSIZ*2 + 1);
> +	bytes = read(pipefd[0], &buffer, MAX_BUFFER_SIZE);
>  	if (bytes < 0) {
>  		SYSERROR("read failed");
>  	}
> -- 
> 1.8.3.2
> 
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel

-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20140217/4db773bd/attachment-0001.pgp>


More information about the lxc-devel mailing list