Loading...
--- Libc/Libc-825.26/string/FreeBSD/strcpy.3
+++ Libc/Libc-763.13/string/FreeBSD/strcpy.3
@@ -43,27 +43,13 @@
.Sh SYNOPSIS
.In string.h
.Ft char *
-.Fo stpcpy
-.Fa "char *s1"
-.Fa "const char *s2"
-.Fc
-.Ft char *
-.Fo stpncpy
-.Fa "char *restrict s1"
-.Fa "const char *restrict s2"
-.Fa "size_t n"
-.Fc
-.Ft char *
-.Fo strcpy
-.Fa "char *restrict s1"
-.Fa "const char *restrict s2"
-.Fc
-.Ft char *
-.Fo strncpy
-.Fa "char *restrict s1"
-.Fa "const char *restrict s2"
-.Fa "size_t n"
-.Fc
+.Fn stpcpy "char * restrict dst" "const char * restrict src"
+.Ft char *
+.Fn stpncpy "char * restrict dst" "const char * restrict src" "size_t len"
+.Ft char *
+.Fn strcpy "char * restrict dst" "const char * restrict src"
+.Ft char *
+.Fn strncpy "char * restrict dst" "const char * restrict src" "size_t len"
.Sh DESCRIPTION
The
.Fn stpcpy
@@ -71,41 +57,38 @@
.Fn strcpy
functions
copy the string
-.Fa s2
-to
-.Fa s1
+.Fa src
+to
+.Fa dst
(including the terminating
.Ql \e0
-character).
+character.)
.Pp
The
.Fn stpncpy
and
.Fn strncpy
functions copy at most
-.Fa n
+.Fa len
characters from
-.Fa s2
+.Fa src
into
-.Fa s1 .
+.Fa dst .
If
-.Fa s2
+.Fa src
is less than
-.Fa n
+.Fa len
characters long,
the remainder of
-.Fa s1
+.Fa dst
is filled with
.Ql \e0
characters.
Otherwise,
-.Fa s1
+.Fa dst
is
.Em not
terminated.
-.Pp
-The source and destination strings should not overlap, as the
-behavior is undefined.
.Sh RETURN VALUES
The
.Fn strcpy
@@ -113,7 +96,7 @@
.Fn strncpy
functions
return
-.Fa s1 .
+.Fa dst .
The
.Fn stpcpy
and
@@ -121,15 +104,15 @@
functions return a pointer to the terminating
.Ql \e0
character of
-.Fa s1 .
+.Fa dst .
If
.Fn stpncpy
does not terminate
-.Fa s1
+.Fa dst
with a
.Dv NUL
character, it instead returns a pointer to
-.Li s1[n]
+.Li dst[n]
(which does not necessarily refer to a valid memory location.)
.Sh EXAMPLES
The following sets
@@ -156,7 +139,7 @@
.Em not
.Tn NUL
terminate
-.Va chararray ,
+.Va chararray
because the length of the source string is greater than or equal
to the length argument.
.Pp
@@ -186,26 +169,21 @@
as shown in the following example:
.Pp
.Dl "(void)strlcpy(buf, input, sizeof(buf));"
+.Pp
+Note that because
+.Xr strlcpy 3
+is not defined in any standards, it should
+only be used when portability is not a concern.
.Sh SECURITY CONSIDERATIONS
The
-.Fn strcpy ,
-.Fn strncpy ,
-.Fn stpcpy ,
-and
-.Fn stpncpy
-functions are easily misused in a manner which enables malicious users
+.Fn strcpy
+function is easily misused in a manner which enables malicious users
to arbitrarily change a running program's functionality through a
buffer overflow attack.
(See
the FSA
and
.Sx EXAMPLES . )
-.Pp
-It is recommended that
-.Xr strlcpy 3
-be used instead as a way to avoid such problems.
-.Xr strlcpy 3
-is not defined in any standards, but it has been adopted by most major libc implementations.
.Sh SEE ALSO
.Xr bcopy 3 ,
.Xr memccpy 3 ,