summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/tmux.c
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2009-06-25 06:54:32 +0000
committernicm <nicm@openbsd.org>2009-06-25 06:54:32 +0000
commitf9b5f0b51dae3e690ffc3f23734ce0193667067a (patch)
treed7686989eb19ce10503fed585f7e0292587f7b80 /usr.bin/tmux/tmux.c
parentlines variable can be -1 (to be ignored), so should be signed. Found by lint. (diff)
downloadwireguard-openbsd-f9b5f0b51dae3e690ffc3f23734ce0193667067a.tar.xz
wireguard-openbsd-f9b5f0b51dae3e690ffc3f23734ce0193667067a.zip
If getcwd() fails, use the user's home directory, or /, instead of failing with
an error.
Diffstat (limited to 'usr.bin/tmux/tmux.c')
-rw-r--r--usr.bin/tmux/tmux.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/usr.bin/tmux/tmux.c b/usr.bin/tmux/tmux.c
index b2466d034f8..36329665b71 100644
--- a/usr.bin/tmux/tmux.c
+++ b/usr.bin/tmux/tmux.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tmux.c,v 1.10 2009/06/25 06:40:25 nicm Exp $ */
+/* $OpenBSD: tmux.c,v 1.11 2009/06/25 06:54:32 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -371,8 +371,11 @@ main(int argc, char **argv)
&global_options, "default-command", "exec %s -l", shell);
if (getcwd(cwd, sizeof cwd) == NULL) {
- log_warn("getcwd");
- exit(1);
+ pw = getpwuid(getuid());
+ if (pw->pw_dir != NULL && *pw->pw_dir != '\0')
+ strlcpy(cwd, pw->pw_dir, sizeof cwd);
+ else
+ strlcpy(cwd, "/", sizeof cwd);
}
options_set_string(&global_options, "default-path", "%s", cwd);