diff options
author | Elliott Hughes <enh@google.com> | 2015-11-13 13:29:58 -0800 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2015-11-19 10:16:19 -0600 |
commit | 0f3d8ee513d63282e72df37b97e35ff1a4e4d646 (patch) | |
tree | 0a413d497ae26824f1f8f387ef0dc8fa6cd7ee60 /toys | |
parent | 859854a1b96f9337316e3fe13dcfef0376cf5c54 (diff) | |
download | toybox-0f3d8ee513d63282e72df37b97e35ff1a4e4d646.tar.gz |
Fix find -perm.
1) It read st_dev instead of st_mode.
2) It reversed the semantics of absolute vs minimal ('-' prefixed) tests.
Add tests for these, and move the "unterminated -exec" test into the "Still
fails" section because it's still dumping core for me.
Diffstat (limited to 'toys')
-rw-r--r-- | toys/posix/find.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/toys/posix/find.c b/toys/posix/find.c index aca19845..f6701845 100644 --- a/toys/posix/find.c +++ b/toys/posix/find.c @@ -279,9 +279,9 @@ static int do_find(struct dirtree *new) if (check) { char *m = ss[1]; mode_t m1 = string_to_mode(m+(*m == '-'), 0), - m2 = new->st.st_dev & 07777; + m2 = new->st.st_mode & 07777; - if (*m != '-') m2 &= m1; + if (*m == '-') m2 &= m1; test = m1 == m2; } } else if (!strcmp(s, "type")) { |