diff options
author | Denys Nykula <nykula@ukr.net> | 2019-10-11 19:09:15 +0300 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2019-10-12 17:23:30 -0500 |
commit | 0cc9d996ed3fe49b34fdf0943523e880203e5be5 (patch) | |
tree | 3f5afb1ff7ff8419280a337eedf1296a339d2cb6 /toys/posix | |
parent | 7adff6b2cad30de073fb597cd0d10826067965ad (diff) | |
download | toybox-0cc9d996ed3fe49b34fdf0943523e880203e5be5.tar.gz |
Fix argless find segfault.
Inline array becomes garbage outside the if.
Diffstat (limited to 'toys/posix')
-rw-r--r-- | toys/posix/find.c | 8 |
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); |