From 7e754f12d304704d44e10fd4d2fdb8710526656e Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Mon, 9 Apr 2007 13:04:50 +0000 Subject: Implement first instance of NOFORK applet - echo find: use NOFORK/NOEXEC; small -exec buglet also eliminated vfork_daemon_rexec: honor PREFER_APPLETS echo: small size improvements find -exec echo {} \; with PREFER_APPLETS=y runs 4 times faster --- libbb/vfork_daemon_rexec.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'libbb/vfork_daemon_rexec.c') diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c index ec8b9b1d7..11dbb24fc 100644 --- a/libbb/vfork_daemon_rexec.c +++ b/libbb/vfork_daemon_rexec.c @@ -26,14 +26,16 @@ pid_t spawn(char **argv) volatile int failed; pid_t pid; - // Be nice to nommu machines. +// Ain't it a good place to fflush(NULL)? + + /* Be nice to nommu machines. */ failed = 0; pid = vfork(); if (pid < 0) /* error */ return pid; if (!pid) { /* child */ - /* Don't use BB_EXECVP tricks here! */ - execvp(argv[0], argv); + /* This macro is ok - it doesn't do NOEXEC/NOFORK tricks */ + BB_EXECVP(argv[0], argv); /* We are (maybe) sharing a stack with blocked parent, * let parent know we failed and then exit to unblock parent -- cgit v1.2.3-55-g6feb