diff options
Diffstat (limited to 'loginutils/su.c')
-rw-r--r-- | loginutils/su.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/loginutils/su.c b/loginutils/su.c index a3f7ed8a0..6356631b8 100644 --- a/loginutils/su.c +++ b/loginutils/su.c @@ -102,8 +102,10 @@ int su_main(int argc UNUSED_PARAM, char **argv) opt_shell = pw->pw_shell; change_identity(pw); - /* setup_environment params: shell, clear_env, change_env, pw */ - setup_environment(opt_shell, flags & SU_OPT_l, !(flags & SU_OPT_mp), pw); + setup_environment(opt_shell, + ((flags & SU_OPT_l) / SU_OPT_l * SETUP_ENV_CLEARENV) + + (!(flags & SU_OPT_mp) * SETUP_ENV_CHANGEENV), + pw); IF_SELINUX(set_current_security_context(NULL);) /* Never returns */ |