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

Dwight Engen dwight.engen at oracle.com
Wed Sep 4 21:04:51 UTC 2013


Signed-off-by: Dwight Engen <dwight.engen at oracle.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





More information about the lxc-devel mailing list