diff options
author | nicm <nicm> | 2014-01-09 21:20:45 +0000 |
---|---|---|
committer | nicm <nicm> | 2014-01-09 21:20:45 +0000 |
commit | b185449d073b376eb305ff2a68d87fd82ed56377 (patch) | |
tree | 97002ce16fd890d029916360de318a39c4b8f1ae | |
parent | c2cac69a22f70cb690ccc97425623f8405013dcf (diff) | |
download | rtmux-b185449d073b376eb305ff2a68d87fd82ed56377.tar.gz rtmux-b185449d073b376eb305ff2a68d87fd82ed56377.tar.bz2 rtmux-b185449d073b376eb305ff2a68d87fd82ed56377.zip |
Fix a memory/fd leak reported by Tiago Cunha.
-rw-r--r-- | client.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -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); |