diff options
author | Denys Vlasenko | 2011-03-06 18:49:40 +0100 |
---|---|---|
committer | Denys Vlasenko | 2011-03-06 18:49:40 +0100 |
commit | bd74e3d8beb0fedc4c1fdd9469a9de3f1f04c7b5 (patch) | |
tree | f1bf618a965c8a3f01811715f4c9684bee767ad0 /loginutils/login.c | |
parent | 41478ade4f28cbacd954c9663d851c374d33f6b9 (diff) | |
download | busybox-bd74e3d8beb0fedc4c1fdd9469a9de3f1f04c7b5.zip busybox-bd74e3d8beb0fedc4c1fdd9469a9de3f1f04c7b5.tar.gz |
libbb/login/su: do not sanitize shell name twice
function old new delta
setup_environment 191 205 +14
login_main 1002 987 -15
su_main 474 458 -16
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 14/-31) Total: -17 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'loginutils/login.c')
-rw-r--r-- | loginutils/login.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/loginutils/login.c b/loginutils/login.c index 952b3aa..028a099 100644 --- a/loginutils/login.c +++ b/loginutils/login.c @@ -198,7 +198,6 @@ int login_main(int argc UNUSED_PARAM, char **argv) }; char *fromhost; char username[USERNAME_SIZE]; - const char *shell; int run_by_root; unsigned opt; int count = 0; @@ -391,10 +390,7 @@ int login_main(int argc UNUSED_PARAM, char **argv) run_login_script(pw, full_tty); change_identity(pw); - shell = pw->pw_shell; - if (!shell || !shell[0]) - shell = DEFAULT_SHELL; - setup_environment(shell, + setup_environment(pw->pw_shell, (!(opt & LOGIN_OPT_p) * SETUP_ENV_CLEARENV) + SETUP_ENV_CHANGEENV, pw); @@ -442,7 +438,7 @@ int login_main(int argc UNUSED_PARAM, char **argv) signal(SIGINT, SIG_DFL); /* Exec login shell with no additional parameters */ - run_shell(shell, 1, NULL, NULL); + run_shell(pw->pw_shell, 1, NULL, NULL); /* return EXIT_FAILURE; - not reached */ } |