Remove the CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN option. It was sortof
stupid and didn't work properly anyways.
This commit is contained in:
		
							
								
								
									
										1
									
								
								debian/config-static
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								debian/config-static
									
									
									
									
										vendored
									
									
								
							@@ -437,7 +437,6 @@ CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y
 | 
			
		||||
CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION=y
 | 
			
		||||
CONFIG_FEATURE_COMMAND_HISTORY=15
 | 
			
		||||
CONFIG_FEATURE_SH_STANDALONE_SHELL=y
 | 
			
		||||
CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN=y
 | 
			
		||||
CONFIG_FEATURE_SH_FANCY_PROMPT=y
 | 
			
		||||
# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								debian/config-udeb
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								debian/config-udeb
									
									
									
									
										vendored
									
									
								
							@@ -359,7 +359,6 @@ CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y
 | 
			
		||||
# CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION is not set
 | 
			
		||||
CONFIG_FEATURE_COMMAND_HISTORY=15
 | 
			
		||||
CONFIG_FEATURE_SH_STANDALONE_SHELL=y
 | 
			
		||||
# CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN is not set
 | 
			
		||||
CONFIG_FEATURE_SH_FANCY_PROMPT=y
 | 
			
		||||
# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								debian/config-udeb-linux
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								debian/config-udeb-linux
									
									
									
									
										vendored
									
									
								
							@@ -368,7 +368,6 @@ CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y
 | 
			
		||||
# CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION is not set
 | 
			
		||||
CONFIG_FEATURE_COMMAND_HISTORY=15
 | 
			
		||||
CONFIG_FEATURE_SH_STANDALONE_SHELL=y
 | 
			
		||||
# CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN is not set
 | 
			
		||||
CONFIG_FEATURE_SH_FANCY_PROMPT=y
 | 
			
		||||
# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -160,16 +160,14 @@ config CONFIG_FEATURE_SH_STANDALONE_SHELL
 | 
			
		||||
	default n
 | 
			
		||||
	depends on CONFIG_MSH || CONFIG_LASH || CONFIG_HUSH || CONFIG_ASH
 | 
			
		||||
	help
 | 
			
		||||
	  Have all the busybox commands built into the shell, creating
 | 
			
		||||
	  a standalone shell.
 | 
			
		||||
 | 
			
		||||
config CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN
 | 
			
		||||
	bool "Standalone shell -- applets always win"
 | 
			
		||||
	default n
 | 
			
		||||
	depends on CONFIG_FEATURE_SH_STANDALONE_SHELL
 | 
			
		||||
	help
 | 
			
		||||
	  Use a command builtin to the shell over one with the same name,
 | 
			
		||||
	  that may be on the system.
 | 
			
		||||
	  This option causes the selected busybox shell to use busybox applets
 | 
			
		||||
	  in preference to executables in the PATH whenever possible.  For
 | 
			
		||||
	  example, entering the command 'ifconfig' into the shell would cause
 | 
			
		||||
	  busybox to use the ifconfig busybox applet.  Specifying the fully
 | 
			
		||||
	  qualified executable name, such as '/sbin/ifconfig' will still
 | 
			
		||||
	  execute the /sbin/ifconfig executable on the filesystem.  This option
 | 
			
		||||
	  is generally used when creating a staticly linked version of busybox
 | 
			
		||||
	  for use as a rescue shell, in the event that you screw up your system.
 | 
			
		||||
 | 
			
		||||
config CONFIG_FEATURE_COMMAND_EDITING
 | 
			
		||||
	bool "command line editing"
 | 
			
		||||
 
 | 
			
		||||
@@ -3717,15 +3717,9 @@ tryexec(char *cmd, char **argv, char **envp)
 | 
			
		||||
	int flg_bb = 0;
 | 
			
		||||
	char *name = cmd;
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN
 | 
			
		||||
	name = bb_get_last_path_component(name);
 | 
			
		||||
	if(find_applet_by_name(name) != NULL)
 | 
			
		||||
		flg_bb = 1;
 | 
			
		||||
#else
 | 
			
		||||
	if(strchr(name, '/') == NULL && find_applet_by_name(name) != NULL) {
 | 
			
		||||
		flg_bb = 1;
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
	if(flg_bb) {
 | 
			
		||||
		char **ap;
 | 
			
		||||
		char **new;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								shell/hush.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								shell/hush.c
									
									
									
									
									
								
							@@ -1124,18 +1124,6 @@ static void pseudo_exec(struct child_prog *child)
 | 
			
		||||
			char** argv_l=child->argv;
 | 
			
		||||
			char *name = child->argv[0];
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN
 | 
			
		||||
			/* Following discussions from November 2000 on the busybox mailing
 | 
			
		||||
			 * list, the default configuration, (without
 | 
			
		||||
			 * bb_get_last_path_component()) lets the user force use of an
 | 
			
		||||
			 * external command by specifying the full (with slashes) filename.
 | 
			
		||||
			 * If you enable CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN, then applets
 | 
			
		||||
			 * _aways_ override external commands, so if you want to run
 | 
			
		||||
			 * /bin/cat, it will use BusyBox cat even if /bin/cat exists on the
 | 
			
		||||
			 * filesystem and is _not_ busybox.  Some systems may want this,
 | 
			
		||||
			 * most do not.  */
 | 
			
		||||
			name = bb_get_last_path_component(name);
 | 
			
		||||
#endif
 | 
			
		||||
			/* Count argc for use in a second... */
 | 
			
		||||
			for(argc_l=0;*argv_l!=NULL; argv_l++, argc_l++);
 | 
			
		||||
			optind = 1;
 | 
			
		||||
 
 | 
			
		||||
@@ -1275,15 +1275,6 @@ static int pseudo_exec(struct child_prog *child)
 | 
			
		||||
	 */
 | 
			
		||||
	name = child->argv[0];
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN
 | 
			
		||||
	/* If you enable CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN, then
 | 
			
		||||
	 * if you run /bin/cat, it will use BusyBox cat even if
 | 
			
		||||
	 * /bin/cat exists on the filesystem and is _not_ busybox.
 | 
			
		||||
	 * Some systems want this, others do not.  Choose wisely.  :-)
 | 
			
		||||
	 */
 | 
			
		||||
	name = bb_get_last_path_component(name);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	{
 | 
			
		||||
	    char** argv_l=child->argv;
 | 
			
		||||
	    int argc_l;
 | 
			
		||||
 
 | 
			
		||||
@@ -2836,9 +2836,6 @@ char *c, **v, **envp;
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_FEATURE_SH_STANDALONE_SHELL
 | 
			
		||||
	char *name = c;
 | 
			
		||||
#ifdef CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN
 | 
			
		||||
	name = bb_get_last_path_component(name);
 | 
			
		||||
#endif
 | 
			
		||||
	optind = 1;
 | 
			
		||||
	if (find_applet_by_name(name)) {
 | 
			
		||||
		/* We have to exec here since we vforked.  Running
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user