hush: fix faloout from previous commit
authorDenys Vlasenko <vda.linux@googlemail.com>
Thu, 15 Jul 2010 06:18:46 +0000 (08:18 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 15 Jul 2010 06:18:46 +0000 (08:18 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
include/busybox.h
shell/hush.c

index 48ce856ea37d0791f2ddafb32a0ce6bb90aec277..48fc0b4c84a0e34297ca4781c59cb87397982b61 100644 (file)
@@ -35,18 +35,21 @@ extern const uint16_t applet_nameofs[];
 extern const uint8_t applet_install_loc[];
 
 #if ENABLE_FEATURE_SUID || ENABLE_FEATURE_PREFER_APPLETS
-#define APPLET_NAME(i) (applet_names + (applet_nameofs[i] & 0x0fff))
+# define APPLET_NAME(i) (applet_names + (applet_nameofs[i] & 0x0fff))
 #else
-#define APPLET_NAME(i) (applet_names + applet_nameofs[i])
+# define APPLET_NAME(i) (applet_names + applet_nameofs[i])
 #endif
 
 #if ENABLE_FEATURE_PREFER_APPLETS
-#define APPLET_IS_NOFORK(i) (applet_nameofs[i] & (1 << 12))
-#define APPLET_IS_NOEXEC(i) (applet_nameofs[i] & (1 << 13))
+# define APPLET_IS_NOFORK(i) (applet_nameofs[i] & (1 << 12))
+# define APPLET_IS_NOEXEC(i) (applet_nameofs[i] & (1 << 13))
+#else
+# define APPLET_IS_NOFORK(i) 0
+# define APPLET_IS_NOEXEC(i) 0
 #endif
 
 #if ENABLE_FEATURE_SUID
-#define APPLET_SUID(i) ((applet_nameofs[i] >> 14) & 0x3)
+# define APPLET_SUID(i) ((applet_nameofs[i] >> 14) & 0x3)
 #endif
 
 #if ENABLE_FEATURE_INSTALLER
index 8a467be80ca8034838ab9755bba41f52986f633b..7dacfa0b1aab9c50de7fb2ad6d333b91b70625c4 100644 (file)
@@ -4328,9 +4328,7 @@ static NOINLINE int run_pipe(struct pipe *pi)
                                }
 #endif
                        }
-#if ENABLE_FEATURE_SH_STANDALONE
  clean_up_and_ret:
-#endif
                        restore_redirects(squirrel);
                        unset_vars(new_env);
                        add_vars(old_vars);
@@ -4342,20 +4340,20 @@ static NOINLINE int run_pipe(struct pipe *pi)
                        return rcode;
                }
 
-#if ENABLE_FEATURE_SH_STANDALONE
-               i = find_applet_by_name(argv_expanded[0]);
-               if (i >= 0 && APPLET_IS_NOFORK(i)) {
-                       rcode = setup_redirects(command, squirrel);
-                       if (rcode == 0) {
-                               new_env = expand_assignments(argv, command->assignment_cnt);
-                               old_vars = set_vars_and_save_old(new_env);
-                               debug_printf_exec(": run_nofork_applet '%s' '%s'...\n",
-                                       argv_expanded[0], argv_expanded[1]);
-                               rcode = run_nofork_applet(i, argv_expanded);
+               if (ENABLE_FEATURE_SH_STANDALONE) {
+                       int n = find_applet_by_name(argv_expanded[0]);
+                       if (n >= 0 && APPLET_IS_NOFORK(n)) {
+                               rcode = setup_redirects(command, squirrel);
+                               if (rcode == 0) {
+                                       new_env = expand_assignments(argv, command->assignment_cnt);
+                                       old_vars = set_vars_and_save_old(new_env);
+                                       debug_printf_exec(": run_nofork_applet '%s' '%s'...\n",
+                                               argv_expanded[0], argv_expanded[1]);
+                                       rcode = run_nofork_applet(n, argv_expanded);
+                               }
+                               goto clean_up_and_ret;
                        }
-                       goto clean_up_and_ret;
                }
-#endif
                /* It is neither builtin nor applet. We must fork. */
        }