aboutsummaryrefslogtreecommitdiff
path: root/toys/other/modinfo.c
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2016-11-21 16:47:23 -0600
committerRob Landley <rob@landley.net>2016-11-21 16:47:23 -0600
commit382057f588fbf2c2f7950b85dd317721b8d04c07 (patch)
treeba6b074d5c956f2f5747e27ce0f8ab948a0a602c /toys/other/modinfo.c
parent9b4a67545e11975068d6e16c6872d54e0473e715 (diff)
downloadtoybox-382057f588fbf2c2f7950b85dd317721b8d04c07.tar.gz
Have dirtree_notdotdot() pass through !node->parent so . and .. on the command
line aren't filtered out. Audited all the callers and removed redundant calls, adjusted call sequence, etc. (And let rm _not_ do this, because posix.)
Diffstat (limited to 'toys/other/modinfo.c')
-rw-r--r--toys/other/modinfo.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/toys/other/modinfo.c b/toys/other/modinfo.c
index 61155b46..69cdf27e 100644
--- a/toys/other/modinfo.c
+++ b/toys/other/modinfo.c
@@ -74,6 +74,8 @@ static void modinfo_file(char *full_name)
static int check_module(struct dirtree *new)
{
+ if (!dirtree_notdotdot(new)) return 0;
+
if (S_ISREG(new->st.st_mode)) {
char *s;
@@ -88,14 +90,14 @@ static int check_module(struct dirtree *new)
}
if (s[len] || strcmp(new->name+len, ".ko")) break;
- modinfo_file(s = dirtree_path(new, NULL));
+ modinfo_file(s = dirtree_path(new, 0));
free(s);
return DIRTREE_ABORT;
}
}
- return dirtree_notdotdot(new);
+ return DIRTREE_RECURSE;
}
void modinfo_main(void)