aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/kldxref/kldxref.c
diff options
context:
space:
mode:
authorMina Galić <freebsd@igalic.co>2023-02-25 17:31:58 +0000
committerWarner Losh <imp@FreeBSD.org>2023-02-25 17:35:43 +0000
commit773c13c686e4b6ae9dbbc150b342b82c3f47d73a (patch)
treea460262fc4a2218b368389b8117580f49f483621 /usr.sbin/kldxref/kldxref.c
parente052829e3e16dfd82d0adcbb69fd0e30f47a3a6c (diff)
Diffstat (limited to 'usr.sbin/kldxref/kldxref.c')
-rw-r--r--usr.sbin/kldxref/kldxref.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/usr.sbin/kldxref/kldxref.c b/usr.sbin/kldxref/kldxref.c
index 7a4d704356b8..933de4991e62 100644
--- a/usr.sbin/kldxref/kldxref.c
+++ b/usr.sbin/kldxref/kldxref.c
@@ -685,6 +685,7 @@ main(int argc, char *argv[])
{
FTS *ftsp;
FTSENT *p;
+ char *dot = NULL;
int opt, fts_options, ival;
struct stat sb;
@@ -752,14 +753,15 @@ main(int argc, char *argv[])
fwrite(&ival, sizeof(ival), 1, fxref);
reccnt = 0;
}
- /* skip non-files and separate debug files */
+ /* skip non-files.. */
if (p->fts_info != FTS_F)
continue;
- if (p->fts_namelen >= 6 &&
- strcmp(p->fts_name + p->fts_namelen - 6, ".debug") == 0)
- continue;
- if (p->fts_namelen >= 8 &&
- strcmp(p->fts_name + p->fts_namelen - 8, ".symbols") == 0)
+ /*
+ * Skip files that generate errors like .debug, .symbol and .pkgsave
+ * by generally skipping all files with 2 dots.
+ */
+ dot = strchr(p->fts_name, '.');
+ if (dot && strchr(dot + 1, '.') != NULL)
continue;
read_kld(p->fts_path, p->fts_name);
}