]> granicus.if.org Git - sudo/commitdiff
When running a login shell via sesh, make new argv[0] -shell, not
authorTodd C. Miller <Todd.Miller@courtesan.com>
Sat, 12 Jul 2014 12:51:00 +0000 (06:51 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Sat, 12 Jul 2014 12:51:00 +0000 (06:51 -0600)
/path/to-shell.  RedHat bz #1065418

src/sesh.c

index 95ee72574cc3159bbc37089f63f20ca0a6d550cd..86d8c09623459df7c02f4577c166dd1ff6644065 100644 (file)
@@ -74,12 +74,12 @@ 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)
-           cp = argv[0];
-       *cp = '-';
+       if ((cp = strrchr(argv[0], '/')) != NULL)
+           argv[0] = cp;
+       argv[0][0] = '-';
     }
     sudo_execve(cmnd, argv, envp, noexec);
-    sudo_warn(U_("unable to execute %s"), argv[0]);
+    sudo_warn(U_("unable to execute %s"), cmnd);
     sudo_debug_exit_int(__func__, __FILE__, __LINE__, sudo_debug_subsys, EXIT_FAILURE);                
     _exit(EXIT_FAILURE);
 }