aboutsummaryrefslogtreecommitdiff
path: root/toys
diff options
context:
space:
mode:
authorDenys Nykula <nykula@ukr.net>2019-10-11 19:09:15 +0300
committerRob Landley <rob@landley.net>2019-10-12 17:23:30 -0500
commit0cc9d996ed3fe49b34fdf0943523e880203e5be5 (patch)
tree3f5afb1ff7ff8419280a337eedf1296a339d2cb6 /toys
parent7adff6b2cad30de073fb597cd0d10826067965ad (diff)
downloadtoybox-0cc9d996ed3fe49b34fdf0943523e880203e5be5.tar.gz
Fix argless find segfault.
Inline array becomes garbage outside the if.
Diffstat (limited to 'toys')
-rw-r--r--toys/posix/find.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/toys/posix/find.c b/toys/posix/find.c
index 98f18eec..433ea5bd 100644
--- a/toys/posix/find.c
+++ b/toys/posix/find.c
@@ -681,7 +681,7 @@ error:
void find_main(void)
{
int i, len;
- char **ss = toys.optargs;
+ char **ss = toys.optargs, **dotifnopaths = (char *[]){"."};
TT.topdir = -1;
TT.max_bytes = sysconf(_SC_ARG_MAX) - environ_bytes();
@@ -691,11 +691,7 @@ void find_main(void)
if (strchr("-!(", *toys.optargs[len])) break;
TT.filter = toys.optargs+len;
- // use "." if no paths
- if (!len) {
- ss = (char *[]){"."};
- len = 1;
- }
+ if (!len) ss = dotifnopaths, len = 1;
// first pass argument parsing, verify args match up, handle "evaluate once"
TT.now = time(0);