summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/sys/systm.h
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/sys/sys/systm.h')
-rw-r--r--freebsd/sys/sys/systm.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/freebsd/sys/sys/systm.h b/freebsd/sys/sys/systm.h
index 29320f93..4ad0ad8c 100644
--- a/freebsd/sys/sys/systm.h
+++ b/freebsd/sys/sys/systm.h
@@ -413,12 +413,12 @@ copystr(const void * _Nonnull __restrict kfaddr,
void * _Nonnull __restrict kdaddr, size_t len,
size_t * __restrict lencopied)
{
+ size_t n = strlcpy((char*)kdaddr, (const char*)kfaddr, len);
+
if (lencopied != NULL) {
- *lencopied = len;
+ *lencopied = n + 1;
}
- memcpy(kdaddr, kfaddr, len);
-
return (0);
}
@@ -426,12 +426,12 @@ static inline int
copyinstr(const void * __restrict udaddr, void * __restrict kaddr,
size_t len, size_t * __restrict lencopied)
{
+ size_t n = strlcpy((char*)kaddr, (const char*)udaddr, len);
+
if (lencopied != NULL) {
- *lencopied = len;
+ *lencopied = n + 1;
}
- memcpy(kaddr, udaddr, len);
-
return (0);
}