A bit of testing today showed that ASH_BBAPPS_AS_BUILTINS was
authorEric Andersen <andersen@codepoet.org>
Thu, 5 Jul 2001 05:24:12 +0000 (05:24 -0000)
committerEric Andersen <andersen@codepoet.org>
Thu, 5 Jul 2001 05:24:12 +0000 (05:24 -0000)
totally breaking the shell.  Simple thinge like 'FOO=100' caused
it to segfault.  It turns out that disabling "bltincmd" is a very
bad idea.
 -Erik

ash.c
shell/ash.c

diff --git a/ash.c b/ash.c
index 489ccaa95088734a0c267d2807acb8c953a3b975..e7f3516083dc8d35bc3a2d6893d1ef1a1ec96ffb 100644 (file)
--- a/ash.c
+++ b/ash.c
@@ -1638,9 +1638,7 @@ static int bgcmd (int, char **);
 static int fgcmd (int, char **);
 static int killcmd (int, char **);
 #endif
-#ifdef ASH_BBAPPS_AS_BUILTINS
 static int bltincmd (int, char **);
-#endif
 static int cdcmd (int, char **);
 static int breakcmd (int, char **);
 #ifdef ASH_CMDCMD
@@ -1727,9 +1725,7 @@ static const struct builtincmd builtincmds[] = {
        { BUILTIN_REGULAR   "bg", bgcmd },
 #endif
        { BUILTIN_SPECIAL   "break", breakcmd },
-#ifdef ASH_BBAPPS_AS_BUILTINS
-       { BUILTIN_SPECIAL   "builtin", bltincmd },
-#endif
+       { BUILTIN_SPECIAL   "builtin", bltincmd },      /* Do not disable this builtin ever or bad things happen */
        { BUILTIN_REGULAR   "cd", cdcmd },
 #ifdef ASH_BBAPPS_AS_BUILTINS
        { BUILTIN_NOSPEC    "chdir", cdcmd },
@@ -13532,7 +13528,7 @@ findvar(struct var **vpp, const char *name)
 /*
  * Copyright (c) 1999 Herbert Xu <herbert@debian.org>
  * This file contains code for the times builtin.
- * $Id: ash.c,v 1.4 2001/07/02 17:27:21 andersen Exp $
+ * $Id: ash.c,v 1.5 2001/07/05 05:24:12 andersen Exp $
  */
 static int timescmd (int argc, char **argv)
 {
index 489ccaa95088734a0c267d2807acb8c953a3b975..e7f3516083dc8d35bc3a2d6893d1ef1a1ec96ffb 100644 (file)
@@ -1638,9 +1638,7 @@ static int bgcmd (int, char **);
 static int fgcmd (int, char **);
 static int killcmd (int, char **);
 #endif
-#ifdef ASH_BBAPPS_AS_BUILTINS
 static int bltincmd (int, char **);
-#endif
 static int cdcmd (int, char **);
 static int breakcmd (int, char **);
 #ifdef ASH_CMDCMD
@@ -1727,9 +1725,7 @@ static const struct builtincmd builtincmds[] = {
        { BUILTIN_REGULAR   "bg", bgcmd },
 #endif
        { BUILTIN_SPECIAL   "break", breakcmd },
-#ifdef ASH_BBAPPS_AS_BUILTINS
-       { BUILTIN_SPECIAL   "builtin", bltincmd },
-#endif
+       { BUILTIN_SPECIAL   "builtin", bltincmd },      /* Do not disable this builtin ever or bad things happen */
        { BUILTIN_REGULAR   "cd", cdcmd },
 #ifdef ASH_BBAPPS_AS_BUILTINS
        { BUILTIN_NOSPEC    "chdir", cdcmd },
@@ -13532,7 +13528,7 @@ findvar(struct var **vpp, const char *name)
 /*
  * Copyright (c) 1999 Herbert Xu <herbert@debian.org>
  * This file contains code for the times builtin.
- * $Id: ash.c,v 1.4 2001/07/02 17:27:21 andersen Exp $
+ * $Id: ash.c,v 1.5 2001/07/05 05:24:12 andersen Exp $
  */
 static int timescmd (int argc, char **argv)
 {