svn commit: trunk/busybox/shell

Bernhard Fischer rep.nop at aon.at
Tue Jan 9 13:34:52 PST 2007


On Tue, Dec 26, 2006 at 01:31:13PM -0800, vda at busybox.net wrote:
>Author: vda
>Date: 2006-12-26 13:31:11 -0800 (Tue, 26 Dec 2006)
>New Revision: 17085
>
>Log:
>ash: is_safe_applet mustn't affect disabled applets
>
>
>Modified:
>   trunk/busybox/shell/ash.c
>
>
>Changeset:
>Modified: trunk/busybox/shell/ash.c
>===================================================================
>--- trunk/busybox/shell/ash.c	2006-12-26 18:17:42 UTC (rev 17084)
>+++ trunk/busybox/shell/ash.c	2006-12-26 21:31:11 UTC (rev 17085)
>@@ -1381,17 +1381,9 @@
> 	{ BUILTIN_REGULAR       "wait", waitcmd },
> };
> 
>-#define NUMBUILTINS  (sizeof (builtincmd) / sizeof (struct builtincmd) )
>+#define NUMBUILTINS (sizeof(builtincmd) / sizeof(builtincmd[0]))
> 
>-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 {
> 	int cmdtype;
> 	union param {
>@@ -2042,7 +2034,30 @@
> 
> static int is_safe_applet(char *name)
> {
>-	int n = sizeof(safe_applets) / sizeof(char *);
>+	/* It isn't a bug to have non-existent applet here... */
>+	/* ...just a waste of space... */
>+	static const char safe_applets[][8] = { 
>+		"["

Didn't look in detail, but
why isn't "[" USE_TEST too apart from lazyness WRT a big
#if THIS|THAT|ONE_OF_THE_OTHERS around the safe_applets and related code ?

thanks,
>+		USE_AWK    (, "awk"    )
>+		USE_CAT    (, "cat"    )
>+		USE_CHMOD  (, "chmod"  )
>+		USE_CHOWN  (, "chown"  )
>+		USE_CP     (, "cp"     )
>+		USE_CUT    (, "cut"    )
>+		USE_DD     (, "dd"     )
>+		USE_ECHO   (, "echo"   )
>+		USE_FIND   (, "find"   )
>+		USE_HEXDUMP(, "hexdump")
>+		USE_LN     (, "ln"     )
>+		USE_LS     (, "ls"     )
>+		USE_MKDIR  (, "mkdir"  )
>+		USE_RM     (, "rm"     )
>+		USE_SORT   (, "sort"   )
>+		USE_TEST   (, "test"   )
>+		USE_TOUCH  (, "touch"  )
>+		USE_XARGS  (, "xargs"  )
>+	};
>+	int n = sizeof(safe_applets) / sizeof(safe_applets[0]);
> 	int i;
> 	for (i = 0; i < n; i++)
> 		if (strcmp(safe_applets[i], name) == 0)


More information about the busybox mailing list