git: d7751071bc41 - main - kldxref: do not error out if specified path is not directory, for -d mode

Konstantin Belousov kib at FreeBSD.org
Thu May 20 19:40:38 UTC 2021


The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=d7751071bc41c63c5dadd81ef4b0a26748d8f9b0

commit d7751071bc41c63c5dadd81ef4b0a26748d8f9b0
Author:     Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-05-20 19:12:11 +0000
Commit:     Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-05-20 19:40:01 +0000

    kldxref: do not error out if specified path is not directory, for -d mode
    
    kldxref(8) is the only tool that can dump FreeBSD kernel module
    metadata, with the -d option. But the command line requirements for that
    are inconvenient, since parser requires that argv[1] is a directory
    containing whole set of modules to generate xref file.
    
    For -d, allow argv[0] to be a regular file, now it is possible to do e.g.
       $ kldxref -d /boot/kernel/ufs.ko
    to see only ufs.ko metadata.
    
    Reviewed by:    emaste
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D30368
---
 usr.sbin/kldxref/kldxref.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/usr.sbin/kldxref/kldxref.c b/usr.sbin/kldxref/kldxref.c
index e1996862119a..7a4d704356b8 100644
--- a/usr.sbin/kldxref/kldxref.c
+++ b/usr.sbin/kldxref/kldxref.c
@@ -716,7 +716,7 @@ main(int argc, char *argv[])
 
 	if (stat(argv[0], &sb) != 0)
 		err(1, "%s", argv[0]);
-	if ((sb.st_mode & S_IFDIR) == 0) {
+	if ((sb.st_mode & S_IFDIR) == 0 && !dflag) {
 		errno = ENOTDIR;
 		err(1, "%s", argv[0]);
 	}


More information about the dev-commits-src-main mailing list