diff options
author | imp <imp@FreeBSD.org> | 2006-08-05 18:22:11 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2006-08-05 18:22:11 +0000 |
commit | 9ae554a06e6ed5031a6e222c495be4c6f24ea9ab (patch) | |
tree | e1e8c6f841b34bb12ada680ba895d8aa2034445d /usr.sbin/kldxref | |
parent | eb0a6f2b06792a7b044c3bfeae205db2a7d6b7d7 (diff) | |
download | FreeBSD-src-9ae554a06e6ed5031a6e222c495be4c6f24ea9ab.zip FreeBSD-src-9ae554a06e6ed5031a6e222c495be4c6f24ea9ab.tar.gz |
Use safe strlcpy rather than unsafe strncpy. After marcel's last fix,
there was still one overflow possible. strlcpy is faster anyway
because it doesn't unexpectedly zero the entire length of the string
when copying short strings....
Diffstat (limited to 'usr.sbin/kldxref')
-rw-r--r-- | usr.sbin/kldxref/kldxref.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/usr.sbin/kldxref/kldxref.c b/usr.sbin/kldxref/kldxref.c index 40e364b..a7c0654 100644 --- a/usr.sbin/kldxref/kldxref.c +++ b/usr.sbin/kldxref/kldxref.c @@ -226,8 +226,7 @@ read_kld(char *filename, char *kldname) cp = strrchr(kldname, '.'); nmlen = cp ? min(MAXMODNAME, cp - kldname) : min(MAXMODNAME, strlen(kldname)); - strncpy(kldmodname, kldname, nmlen); - kldmodname[nmlen] = '\0'; + strlcpy(kldmodname, kldname, nmlen); /* fprintf(fxref, "%s:%s:%d\n", kldmodname, kldname, 0);*/ } do { @@ -259,8 +258,7 @@ maketempfile(char *dest, const char *root) char *p; int fd; - strncpy(dest, root, MAXPATHLEN - 1); - dest[MAXPATHLEN-1] = '\0'; + strlcpy(dest, root, MAXPATHLEN); if ((p = strrchr(dest, '/')) != 0) p++; |