summaryrefslogtreecommitdiffstats
path: root/tmux.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2013-10-05 11:40:47 +0100
committerNicholas Marriott <nicholas.marriott@gmail.com>2013-10-05 11:40:47 +0100
commit710eeb2a33cb91c05251c69d7eb1a572aed44cb4 (patch)
treeb1db48ce44b88425c1f56635435bf9d86715318a /tmux.c
parent3493b7dac7785a1675a2fc70e37c4461bb18043c (diff)
Fix previous not to lead fd on failure.
Diffstat (limited to 'tmux.c')
-rw-r--r--tmux.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/tmux.c b/tmux.c
index 4ff45d55..f68beeea 100644
--- a/tmux.c
+++ b/tmux.c
@@ -130,23 +130,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