aboutsummaryrefslogtreecommitdiffstats
path: root/openwrt/package/busybox/patches/190-ash_performance.patch
diff options
context:
space:
mode:
Diffstat (limited to 'openwrt/package/busybox/patches/190-ash_performance.patch')
-rw-r--r--openwrt/package/busybox/patches/190-ash_performance.patch77
1 files changed, 0 insertions, 77 deletions
diff --git a/openwrt/package/busybox/patches/190-ash_performance.patch b/openwrt/package/busybox/patches/190-ash_performance.patch
deleted file mode 100644
index 2231fd786a..0000000000
--- a/openwrt/package/busybox/patches/190-ash_performance.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-diff -urN busybox.old/shell/ash.c busybox.dev/shell/ash.c
---- busybox.old/shell/ash.c 2005-11-12 22:39:19.853826250 +0100
-+++ busybox.dev/shell/ash.c 2005-11-12 22:39:42.771258500 +0100
-@@ -1414,6 +1414,13 @@
-
- #define NUMBUILTINS (sizeof (builtincmd) / sizeof (struct builtincmd) )
-
-+static const char *safe_applets[] = {
-+ "[", "test", "echo", "cat",
-+ "ln", "cp", "touch", "mkdir", "rm",
-+ "cut", "hexdump", "awk", "sort",
-+ "find", "xargs", "ls", "dd",
-+ "chown", "chmod"
-+};
-
-
- struct cmdentry {
-@@ -2050,6 +2057,19 @@
- static void exitshell(void) __attribute__((__noreturn__));
- static int decode_signal(const char *, int);
-
-+
-+static int is_safe_applet(char *name)
-+{
-+ int n = sizeof(safe_applets) / sizeof(char *);
-+ int i;
-+ for (i = 0; i < n; i++)
-+ if (strcmp(safe_applets[i], name) == 0)
-+ return 1;
-+
-+ return 0;
-+}
-+
-+
- /*
- * This routine is called when an error or an interrupt occurs in an
- * interactive shell and control is returned to the main command loop.
-@@ -3680,6 +3700,7 @@
- clearredir(1);
- envp = environment();
- if (strchr(argv[0], '/') != NULL
-+ || is_safe_applet(argv[0])
- #ifdef CONFIG_FEATURE_SH_STANDALONE_SHELL
- || find_applet_by_name(argv[0])
- #endif
-@@ -3721,6 +3742,18 @@
- tryexec(char *cmd, char **argv, char **envp)
- {
- int repeated = 0;
-+ struct BB_applet *a;
-+ int argc = 0;
-+ char **c;
-+
-+ if(strchr(cmd, '/') == NULL && is_safe_applet(cmd) && (a = find_applet_by_name(cmd)) != NULL) {
-+ c = argv;
-+ while (*c != NULL) {
-+ c++; argc++;
-+ }
-+ bb_applet_name = cmd;
-+ exit(a->main(argc, argv));
-+ }
- #ifdef CONFIG_FEATURE_SH_STANDALONE_SHELL
- int flg_bb = 0;
- char *name = cmd;
-@@ -3919,6 +3952,12 @@
- }
- #endif
-
-+ if (is_safe_applet(name)) {
-+ entry->cmdtype = CMDNORMAL;
-+ entry->u.index = -1;
-+ return;
-+ }
-+
- updatetbl = (path == pathval());
- if (!updatetbl) {
- act |= DO_ALTPATH;