From c9ca0a32745a43eaa6cb6b7b460718de8ccb84f2 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Mon, 18 Feb 2008 11:08:33 +0000 Subject: mount: recognize "dirsync" (closes bug 835) mount: sanitize environ if called by non-root *: adjust for slightly different sanitize routine --- loginutils/login.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'loginutils/login.c') diff --git a/loginutils/login.c b/loginutils/login.c index 55cbfa7cd..a5b6369ff 100644 --- a/loginutils/login.c +++ b/loginutils/login.c @@ -254,20 +254,17 @@ int login_main(int argc, char **argv) short_tty = full_tty; username[0] = '\0'; - amroot = (getuid() == 0); signal(SIGALRM, alarm_handler); alarm(TIMEOUT); + /* More of suid paranoia if called by non-root */ + amroot = !sanitize_env_if_suid(); /* Clear dangerous stuff, set PATH */ + /* Mandatory paranoia for suid applet: * ensure that fd# 0,1,2 are opened (at least to /dev/null) * and any extra open fd's are closed. * (The name of the function is misleading. Not daemonizing here.) */ bb_daemonize_or_rexec(DAEMON_ONLY_SANITIZE | DAEMON_CLOSE_EXTRA_FDS, NULL); - /* More of suid paranoia if called by non-root */ - if (!amroot) { - /* Clear dangerous stuff, set PATH */ - sanitize_env_for_suid(); - } opt = getopt32(argv, "f:h:p", &opt_user, &opt_host); if (opt & LOGIN_OPT_f) { -- cgit v1.2.3