aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2017-08-03 19:52:47 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2017-08-03 19:52:47 +0200
commit19c9f31af17f2c34e93c9c322b5c546ffbcda6ad (patch)
tree589df9d37647d8a8b26a1737c2b21f76f64fd1d6
parent72d725d7cc6d5cd8ad6c69f7efb3b7046931395b (diff)
downloadbusybox-w32-19c9f31af17f2c34e93c9c322b5c546ffbcda6ad.tar.gz
busybox-w32-19c9f31af17f2c34e93c9c322b5c546ffbcda6ad.tar.bz2
busybox-w32-19c9f31af17f2c34e93c9c322b5c546ffbcda6ad.zip
nofork: fix a bug uncovered by hush testsuite (forgotten fflush)
function old new delta run_nofork_applet 280 287 +7 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--libbb/vfork_daemon_rexec.c2
-rwxr-xr-xshell/hush_test/run-all2
2 files changed, 3 insertions, 1 deletions
diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c
index 487ecb0e4..98512bb00 100644
--- a/libbb/vfork_daemon_rexec.c
+++ b/libbb/vfork_daemon_rexec.c
@@ -143,6 +143,8 @@ int FAST_FUNC run_nofork_applet(int applet_no, char **argv)
143 applet_name = tmp_argv[0]; 143 applet_name = tmp_argv[0];
144 /* Finally we can call NOFORK applet's main() */ 144 /* Finally we can call NOFORK applet's main() */
145 rc = applet_main[applet_no](argc, tmp_argv); 145 rc = applet_main[applet_no](argc, tmp_argv);
146 /* Important for shells: `which CMD` was failing */
147 fflush_all();
146 } else { 148 } else {
147 /* xfunc died in NOFORK applet */ 149 /* xfunc died in NOFORK applet */
148 } 150 }
diff --git a/shell/hush_test/run-all b/shell/hush_test/run-all
index 1dd0edc39..3fbc7c531 100755
--- a/shell/hush_test/run-all
+++ b/shell/hush_test/run-all
@@ -80,7 +80,7 @@ do_test()
80 case $? in 80 case $? in
81 0) echo " ok";; 81 0) echo " ok";;
82 77) echo " skip (feature disabled)";; 82 77) echo " skip (feature disabled)";;
83 *) echo " fail"; tret=1;; 83 *) echo " fail ($?)"; tret=1;;
84 esac 84 esac
85 done 85 done
86 exit ${tret} 86 exit ${tret}