diff --git a/usr.sbin/kldxref/kldxref.c b/usr.sbin/kldxref/kldxref.c index 1a640ca5244..396cf93df25 100644 --- a/usr.sbin/kldxref/kldxref.c +++ b/usr.sbin/kldxref/kldxref.c @@ -32,6 +32,7 @@ * $FreeBSD$ */ +#include #include #include #include @@ -272,6 +273,7 @@ main(int argc, char *argv[]) FTS *ftsp; FTSENT *p; int opt, fts_options, ival; + struct stat sb; fts_options = FTS_PHYSICAL; /* SLIST_INIT(&kldlist);*/ @@ -300,6 +302,13 @@ main(int argc, char *argv[]) argc -= optind; argv += optind; + if (stat(argv[0], &sb) != 0) + err(1, "%s", argv[0]); + if ((sb.st_mode & S_IFDIR) == 0) { + errno = ENOTDIR; + err(1, "%s", argv[0]); + } + ftsp = fts_open(argv, fts_options, 0); if (ftsp == NULL) exit(1);