diff options
author | Tiago Cunha <tcunha@gmx.com> | 2011-10-02 11:32:24 +0000 |
---|---|---|
committer | Tiago Cunha <tcunha@gmx.com> | 2011-10-02 11:32:24 +0000 |
commit | edd59d9e0f698aca04841365400853a3aa03b47f (patch) | |
tree | 1ac9130209b5d7590dd08c9e6f996befe534a1a0 | |
parent | 326c5bf1b41add03287539c16b8b4192914fb3b5 (diff) | |
download | rtmux-edd59d9e0f698aca04841365400853a3aa03b47f.tar.gz rtmux-edd59d9e0f698aca04841365400853a3aa03b47f.tar.bz2 rtmux-edd59d9e0f698aca04841365400853a3aa03b47f.zip |
Sync OpenBSD patchset 960:
Reject $SHELL if it is not a full path.
-rw-r--r-- | tmux.c | 4 | ||||
-rw-r--r-- | window.c | 2 |
2 files changed, 4 insertions, 2 deletions
@@ -101,7 +101,9 @@ getshell(void) int checkshell(const char *shell) { - if (shell == NULL || *shell == '\0' || areshell(shell)) + if (shell == NULL || *shell == '\0' || *shell != '/') + return (0); + if (areshell(shell)) return (0); if (access(shell, X_OK) != 0) return (0); @@ -694,7 +694,7 @@ window_pane_spawn(struct window_pane *wp, const char *cmd, const char *shell, if (*wp->cmd != '\0') { /* Set SHELL but only if it is currently not useful. */ shell = getenv("SHELL"); - if (shell == NULL || *shell == '\0' || areshell(shell)) + if (checkshell(shell)) setenv("SHELL", wp->shell, 1); execl(_PATH_BSHELL, "sh", "-c", wp->cmd, (char *) NULL); |