From c38c88fd5c5d81d428c2376061e79b2e8a1ac844 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 9 Jan 2014 21:20:45 +0000 Subject: [PATCH] Fix a memory/fd leak reported by Tiago Cunha. --- usr.bin/tmux/client.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/usr.bin/tmux/client.c b/usr.bin/tmux/client.c index 0d0aeac405d..5b4d8eeca31 100644 --- a/usr.bin/tmux/client.c +++ b/usr.bin/tmux/client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: client.c,v 1.77 2014/01/09 14:05:55 nicm Exp $ */ +/* $OpenBSD: client.c,v 1.78 2014/01/09 21:20:45 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -118,10 +118,15 @@ retry: close(fd); xasprintf(&lockfile, "%s.lock", path); - if ((lockfd = client_get_lock(lockfile)) == -1) + if ((lockfd = client_get_lock(lockfile)) == -1) { + free(lockfile); goto retry; - if (unlink(path) != 0 && errno != ENOENT) + } + if (unlink(path) != 0 && errno != ENOENT) { + free(lockfile); + close(lockfd); return (-1); + } fd = server_start(lockfd, lockfile); free(lockfile); close(lockfd); -- 2.20.1