diff options
Diffstat (limited to 'freebsd/sys/sys/systm.h')
-rw-r--r-- | freebsd/sys/sys/systm.h | 12 |
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); } |