[lxc-devel] [PATCH] valgrind: fix memory leak on container new/put

Serge Hallyn serge.hallyn at ubuntu.com
Thu Sep 5 15:38:34 UTC 2013


Quoting Dwight Engen (dwight.engen at oracle.com):
> Signed-off-by: Dwight Engen <dwight.engen at oracle.com>

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

> ---
>  src/lxc/lxclock.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/src/lxc/lxclock.c b/src/lxc/lxclock.c
> index dea6941..79ebf84 100644
> --- a/src/lxc/lxclock.c
> +++ b/src/lxc/lxclock.c
> @@ -122,6 +122,10 @@ struct lxc_lock *lxc_newlock(const char *lxcpath, const char *name)
>  	if (!name) {
>  		l->type = LXC_LOCK_ANON_SEM;
>  		l->u.sem = lxc_new_unnamed_sem();
> +		if (!l->u.sem) {
> +			free(l);
> +			l = NULL;
> +		}
>  		goto out;
>  	}
>  
> @@ -248,8 +252,11 @@ void lxc_putlock(struct lxc_lock *l)
>  		return;
>  	switch(l->type) {
>  	case LXC_LOCK_ANON_SEM:
> -		if (l->u.sem)
> +		if (l->u.sem) {
>  			sem_close(l->u.sem);
> +			free(l->u.sem);
> +			l->u.sem = NULL;
> +		}
>  		break;
>  	case LXC_LOCK_FLOCK:
>  		process_lock();
> @@ -264,6 +271,7 @@ void lxc_putlock(struct lxc_lock *l)
>  		}
>  		break;
>  	}
> +	free(l);
>  }
>  
>  int process_lock(void)
> -- 
> 1.8.1.4
> 
> 
> ------------------------------------------------------------------------------
> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> Discover the easy way to master current and previous Microsoft technologies
> and advance your career. Get an incredible 1,500+ hours of step-by-step
> tutorial videos with LearnDevNow. Subscribe today and save!
> http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
> _______________________________________________
> Lxc-devel mailing list
> Lxc-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel




More information about the lxc-devel mailing list