summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_sysctl.c
diff options
context:
space:
mode:
authorrobert <robert@FreeBSD.org>2002-10-17 20:03:38 +0000
committerrobert <robert@FreeBSD.org>2002-10-17 20:03:38 +0000
commit1e0cdb534a593672b1178f980abd762bd316b57d (patch)
tree0a05cf96e39ba02857dd2294138be9f6e7f278ad /sys/kern/kern_sysctl.c
parent5e20feda93dab6d1a2a9c89e8f6a255504b3c3a3 (diff)
downloadFreeBSD-src-1e0cdb534a593672b1178f980abd762bd316b57d.zip
FreeBSD-src-1e0cdb534a593672b1178f980abd762bd316b57d.tar.gz
Use strlcpy() instead of strncpy() to copy NUL terminated strings
for safety and consistency.
Diffstat (limited to 'sys/kern/kern_sysctl.c')
-rw-r--r--sys/kern/kern_sysctl.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/kern_sysctl.c b/sys/kern/kern_sysctl.c
index cf84cd8..b494fe6 100644
--- a/sys/kern/kern_sysctl.c
+++ b/sys/kern/kern_sysctl.c
@@ -822,11 +822,12 @@ sysctl_handle_string(SYSCTL_HANDLER_ARGS)
retry:
outlen = strlen((char *)arg1)+1;
tmparg = malloc(outlen, M_SYSCTLTMP, M_WAITOK);
- strncpy(tmparg, (char *)arg1, outlen);
- if (tmparg[outlen-1] != '\0') {
+
+ if (strlcpy(tmparg, (char *)arg1, outlen) >= outlen) {
free(tmparg, M_SYSCTLTMP);
goto retry;
}
+
error = SYSCTL_OUT(req, tmparg, outlen);
free(tmparg, M_SYSCTLTMP);
OpenPOWER on IntegriCloud