[lxc-devel] [PATCH 1/7] coverity: Free bdev in clone_update_rootfs

Serge Hallyn serge.hallyn at ubuntu.com
Wed Feb 12 21:54:28 UTC 2014


Quoting Stéphane Graber (stgraber at ubuntu.com):
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>

Meh,

Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>

though every caller exits after calling this fn.  Still shutting up
coverity is worthwhile.

> ---
>  src/lxc/lxccontainer.c | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c
> index 51e0ac5..a25c196 100644
> --- a/src/lxc/lxccontainer.c
> +++ b/src/lxc/lxccontainer.c
> @@ -2498,10 +2498,13 @@ static int clone_update_rootfs(struct clone_update_data *data)
>  	if (strcmp(bdev->type, "dir") != 0) {
>  		if (unshare(CLONE_NEWNS) < 0) {
>  			ERROR("error unsharing mounts");
> +			bdev_put(bdev);
>  			return -1;
>  		}
> -		if (bdev->ops->mount(bdev) < 0)
> +		if (bdev->ops->mount(bdev) < 0) {
> +			bdev_put(bdev);
>  			return -1;
> +		}
>  	} else { // TODO come up with a better way
>  		if (bdev->dest)
>  			free(bdev->dest);
> @@ -2528,12 +2531,15 @@ static int clone_update_rootfs(struct clone_update_data *data)
>  
>  		if (run_lxc_hooks(c->name, "clone", conf, c->get_config_path(c), hookargs)) {
>  			ERROR("Error executing clone hook for %s", c->name);
> +			bdev_put(bdev);
>  			return -1;
>  		}
>  	}
>  
>  	if (!(flags & LXC_CLONE_KEEPNAME)) {
>  		ret = snprintf(path, MAXPATHLEN, "%s/etc/hostname", bdev->dest);
> +		bdev_put(bdev);
> +
>  		if (ret < 0 || ret >= MAXPATHLEN)
>  			return -1;
>  		if (!file_exists(path))
> @@ -2549,6 +2555,9 @@ static int clone_update_rootfs(struct clone_update_data *data)
>  		if (fclose(fout) < 0)
>  			return -1;
>  	}
> +	else
> +		bdev_put(bdev);
> +
>  	return 0;
>  }
>  
> -- 
> 1.9.rc1
> 
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel


More information about the lxc-devel mailing list