From: nicm Date: Thu, 9 Jan 2014 21:20:45 +0000 (+0000) Subject: Fix a memory/fd leak reported by Tiago Cunha. X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=c38c88fd5c5d81d428c2376061e79b2e8a1ac844;p=openbsd Fix a memory/fd leak reported by Tiago Cunha. --- 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);