aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorMina Galić <freebsd@igalic.co>2024-02-02 15:35:46 +0000
committerWarner Losh <imp@FreeBSD.org>2024-02-02 15:35:49 +0000
commitf4613af424cc93d42f35730fd9862f0c6f964cbd (patch)
tree1984f16ba6426b08b2d1e6b5eecd16669c92d2dd /usr.sbin
parent36f0a34ca645d49ec79d60ea7e773374ef0991ea (diff)
downloadsrc-f4613af424cc93d42f35730fd9862f0c6f964cbd.tar.gz
src-f4613af424cc93d42f35730fd9862f0c6f964cbd.zip
kldxref: Fix maketempfile function's way of finding the root dir
Rather than assuming that the "root" is passed as directory and will be marked by a trailing slash, we just assume that the directory, which has been checked previously to be a directory, is a directory. This fixes an inconsistency between `kldxref /boot/modules`, which tries to create the temp file in `/boot/`, and `kldxref /boot/modules/`, which tries to create it in `/boot/modules/` itself. Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1093
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/kldxref/kldxref.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/usr.sbin/kldxref/kldxref.c b/usr.sbin/kldxref/kldxref.c
index 1f06ad811d91..969d07e5677a 100644
--- a/usr.sbin/kldxref/kldxref.c
+++ b/usr.sbin/kldxref/kldxref.c
@@ -717,12 +717,9 @@ read_kld(char *filename, char *kldname)
static FILE *
maketempfile(char *dest, const char *root)
{
- char *p;
- int n, fd;
+ int fd;
- p = strrchr(root, '/');
- n = p != NULL ? p - root + 1 : 0;
- if (snprintf(dest, MAXPATHLEN, "%.*slhint.XXXXXX", n, root) >=
+ if (snprintf(dest, MAXPATHLEN, "%s/lhint.XXXXXX", root) >=
MAXPATHLEN) {
errno = ENAMETOOLONG;
return (NULL);