From 3437f30ae9a24740bf3e9dd2b5db7482a5c1dfb8 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Thu, 29 Aug 2019 13:44:59 -0700 Subject: find: fix -name corner case. This fixes the case where someone's done something (weird) like: find src/*.c -name foo.c Previously the match would fail because one side of the comparison was already a path. --- toys/posix/find.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'toys/posix') diff --git a/toys/posix/find.c b/toys/posix/find.c index 58a6f88d..02fdf3c4 100644 --- a/toys/posix/find.c +++ b/toys/posix/find.c @@ -368,7 +368,8 @@ static int do_find(struct dirtree *new) } if (check) { - test = !fnmatch(arg, name, FNM_PATHNAME*(!is_path)); + test = !fnmatch(arg, is_path ? name : basename(name), + FNM_PATHNAME*(!is_path)); if (i) free(name); } free(path); -- cgit v1.2.3