Fix a memory/fd leak reported by Tiago Cunha.

pull/1/head
nicm 2014-01-09 21:20:45 +00:00
parent c2cac69a22
commit b185449d07
1 changed files with 7 additions and 2 deletions

View File

@ -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);