From df798b7f58237e414e738fa0bd453cf13471bf76 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Wed, 14 Jun 2006 16:36:45 +0000 Subject: - minor size tweak text data bss dec hex filename 613 0 0 613 265 loginutils/su.o.orig 605 0 0 605 25d loginutils/su.o --- loginutils/su.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'loginutils/su.c') diff --git a/loginutils/su.c b/loginutils/su.c index a6fcd739f..1273831ff 100644 --- a/loginutils/su.c +++ b/loginutils/su.c @@ -65,8 +65,6 @@ static void log_su (const char *successful, const char *old_user, int su_main ( int argc, char **argv ) { unsigned long flags; - int opt_preserve; - int opt_loginshell; char *opt_shell = 0; char *opt_command = 0; char *opt_username = DEFAULT_USER; @@ -81,11 +79,12 @@ int su_main ( int argc, char **argv ) flags = bb_getopt_ulflags(argc, argv, "mplc:s:", &opt_command, &opt_shell); - opt_preserve = flags & 3; - opt_loginshell = (flags & 4 ? 1 : 0); +#define SU_OPT_m (3) +#define SU_OPT_p (3) +#define SU_OPT_l (4) if (optind < argc && argv[optind][0] == '-' && argv[optind][1] == 0) { - opt_loginshell = 1; + flags |= SU_OPT_l; ++optind; } @@ -137,7 +136,7 @@ int su_main ( int argc, char **argv ) closelog(); #endif - if ( !opt_shell && opt_preserve ) + if ( !opt_shell && (flags & SU_OPT_p)) opt_shell = getenv ( "SHELL" ); if ( opt_shell && cur_uid && restricted_shell ( pw->pw_shell )) { @@ -153,11 +152,11 @@ int su_main ( int argc, char **argv ) opt_shell = pw->pw_shell; change_identity ( pw ); - setup_environment ( opt_shell, opt_loginshell, !opt_preserve, pw ); + setup_environment(opt_shell, flags & SU_OPT_l, !(flags & SU_OPT_p), pw); #if ENABLE_SELINUX set_current_security_context(NULL); #endif - run_shell ( opt_shell, opt_loginshell, opt_command, (const char**)opt_args); + run_shell(opt_shell, flags & SU_OPT_l, opt_command, (const char**)opt_args); return EXIT_FAILURE; } -- cgit v1.2.3