diff options
author | robert <robert@FreeBSD.org> | 2002-10-17 20:03:38 +0000 |
---|---|---|
committer | robert <robert@FreeBSD.org> | 2002-10-17 20:03:38 +0000 |
commit | 1e0cdb534a593672b1178f980abd762bd316b57d (patch) | |
tree | 0a05cf96e39ba02857dd2294138be9f6e7f278ad /sys/kern/kern_sysctl.c | |
parent | 5e20feda93dab6d1a2a9c89e8f6a255504b3c3a3 (diff) | |
download | FreeBSD-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.c | 5 |
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); |