[git commit] find: fix regression in status processing for path arguments

Denys Vlasenko vda.linux at googlemail.com
Tue Apr 14 14:45:23 UTC 2015


commit: http://git.busybox.net/busybox/commit/?id=f7466e477691fd29f47ebe8ae27489e065c69e5e
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Regression added in commit 14158b4127dba30466c50147b868a6a89702960b
"find: add optional support for '-exec ... {} +'"

This commit causes find to exit on the first path argument that was not
found, which breaks existing scripts and is incompatible to other
implementations.

Instead of exiting on the first failure, return EXIT_FAILURE at the end
if any error occurred.

Signed-off-by: Felix Fietkau <nbd at openwrt.org>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 findutils/find.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/findutils/find.c b/findutils/find.c
index 83aa63f..ced8922 100644
--- a/findutils/find.c
+++ b/findutils/find.c
@@ -1460,12 +1460,10 @@ int find_main(int argc UNUSED_PARAM, char **argv)
 				NULL,           /* user data */
 				0)              /* depth */
 		) {
-			status = EXIT_FAILURE;
-			goto out;
+			status |= EXIT_FAILURE;
 		}
 	}
 
-	IF_FEATURE_FIND_EXEC_PLUS(status = flush_exec_plus();)
-out:
+	IF_FEATURE_FIND_EXEC_PLUS(status |= flush_exec_plus();)
 	return status;
 }


More information about the busybox-cvs mailing list