Don't allow SYSVINIT parameters through anymore.
RC_REBOOT is now yes when rebooting. Document the special reboot runlevel.
This commit is contained in:
		@@ -112,11 +112,10 @@ rc_conf_yesno(const char *setting)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const char *const env_whitelist[] = {
 | 
			
		||||
	"PATH", "SHELL", "USER", "HOME", "TERM",
 | 
			
		||||
	"CONSOLE", "PATH", "SHELL", "USER", "HOME", "TERM",
 | 
			
		||||
	"LANG", "LC_CTYPE", "LC_NUMERIC", "LC_TIME", "LC_COLLATE",
 | 
			
		||||
	"LC_MONETARY", "LC_MESSAGES", "LC_PAPER", "LC_NAME", "LC_ADDRESS",
 | 
			
		||||
	"LC_TELEPHONE", "LC_MEASUREMENT", "LC_IDENTIFICATION", "LC_ALL",
 | 
			
		||||
	"INIT_HALT", "INIT_VERSION", "RUNLEVEL", "PREVLEVEL", "CONSOLE",
 | 
			
		||||
	"IN_HOTPLUG", "IN_BACKGROUND", "RC_INTERFACE_KEEP_CONFIG",
 | 
			
		||||
	NULL
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -842,10 +842,14 @@ main(int argc, char **argv)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	newlevel = argv[optind++];
 | 
			
		||||
	/* For compat with old system */
 | 
			
		||||
	/* To make life easier, we only have the shutdown runlevel as
 | 
			
		||||
	 * nothing really needs to know that we're rebooting.
 | 
			
		||||
	 * But for those that do, you can test against RC_REBOOT. */
 | 
			
		||||
	if (newlevel) {
 | 
			
		||||
		if (strcmp(newlevel, "reboot") == 0)
 | 
			
		||||
		if (strcmp(newlevel, "reboot") == 0) {
 | 
			
		||||
			newlevel = UNCONST(RC_LEVEL_SHUTDOWN);
 | 
			
		||||
			setenv("RC_REBOOT", "yes", 1);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Enable logging */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user