From fb96eb24455f4ea501c873ba68d07ecb61ce28d6 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Mon, 14 Jul 2014 09:56:38 -0600 Subject: [PATCH] Error out if sesh is run as a login shell but the shell it needs to run has no slash. This shouldn't happen in practice. --- src/sesh.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sesh.c b/src/sesh.c index 86d8c0962..d939f1b47 100644 --- a/src/sesh.c +++ b/src/sesh.c @@ -74,9 +74,10 @@ main(int argc, char *argv[], char *envp[]) /* If invoked as a login shell, modify argv[0] accordingly. */ if (login_shell) { - if ((cp = strrchr(argv[0], '/')) != NULL) - argv[0] = cp; - argv[0][0] = '-'; + if ((cp = strrchr(argv[0], '/')) == NULL) + sudo_fatal(U_("unable to run %s as a login shell"), argv[0]); + *cp = '-'; + argv[0] = cp; } sudo_execve(cmnd, argv, envp, noexec); sudo_warn(U_("unable to execute %s"), cmnd);