From 9f330897a8fc4f927d355eacf9cc58f3be2092f7 Mon Sep 17 00:00:00 2001 From: nicm Date: Sat, 5 Oct 2013 10:40:49 +0000 Subject: [PATCH] Fix previous not to leak fd on failure, whoops. --- tmux.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/tmux.c b/tmux.c index 8726a55f..73843a96 100644 --- a/tmux.c +++ b/tmux.c @@ -127,23 +127,25 @@ areshell(const char *shell) const char* get_full_path(const char *wd, const char *path) { - int fd; - static char newpath[MAXPATHLEN]; + int fd; + static char newpath[MAXPATHLEN]; + const char *retval; fd = open(".", O_RDONLY); if (fd == -1) return (NULL); - if (chdir(wd) != 0) - return (NULL); - if (realpath(path, newpath) != 0) - return (NULL); + retval = NULL; + if (chdir(wd) == 0) { + if (realpath(path, newpath) == 0) + retval = newpath; + } if (fchdir(fd) != 0) chdir("/"); close(fd); - return (newpath); + return (retval); } void