Loading...
string/FreeBSD/strcpy.3 Libc-1725.40.4 Libc-997.90.3
--- Libc/Libc-1725.40.4/string/FreeBSD/strcpy.3
+++ Libc/Libc-997.90.3/string/FreeBSD/strcpy.3
@@ -13,7 +13,7 @@
 .\" 2. Redistributions in binary form must reproduce the above copyright
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
+.\" 4. Neither the name of the University nor the names of its contributors
 .\"    may be used to endorse or promote products derived from this software
 .\"    without specific prior written permission.
 .\"
@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)strcpy.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
+.\" $FreeBSD: src/lib/libc/string/strcpy.3,v 1.28 2009/04/07 13:42:53 trasz Exp $
 .\"
 .Dd February 28, 2009
 .Dt STRCPY 3
@@ -43,23 +43,27 @@
 .Sh SYNOPSIS
 .In string.h
 .Ft char *
-.Fn stpcpy "char * dst" "const char * src"
-.Ft char *
-.Fn stpncpy "char * dst" "const char * src" "size_t len"
-.Ft char *
-.Fn strcpy "char * dst" "const char * src"
-.Ft char *
-.Fn strncpy "char * dst" "const char * src" "size_t len"
-.Sh ADMONISHMENT
-.Pp
-.ti +8
-.Pp
-YOU SHOULD ALMOST CERTAINLY USE
-.Fn strlcpy
-INSTEAD.
-.ti +8
-.Pp
-See "Examples" below.
+.Fo stpcpy
+.Fa "char *dst"
+.Fa "const char *src"
+.Fc
+.Ft char *
+.Fo stpncpy
+.Fa "char *restrict dst"
+.Fa "const char *restrict src"
+.Fa "size_t n"
+.Fc
+.Ft char *
+.Fo strcpy
+.Fa "char *restrict dst"
+.Fa "const char *restrict src"
+.Fc
+.Ft char *
+.Fo strncpy
+.Fa "char *restrict dst"
+.Fa "const char *restrict src"
+.Fa "size_t n"
+.Fc
 .Sh DESCRIPTION
 The
 .Fn stpcpy
@@ -72,14 +76,14 @@
 .Fa dst
 (including the terminating
 .Ql \e0
-character.)
+character).
 .Pp
 The
 .Fn stpncpy
 and
 .Fn strncpy
 functions copy at most
-.Fa len
+.Fa n
 characters from
 .Fa src
 into
@@ -87,7 +91,7 @@
 If
 .Fa src
 is less than
-.Fa len
+.Fa n
 characters long,
 the remainder of
 .Fa dst
@@ -152,7 +156,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
@@ -182,11 +186,26 @@
 as shown in the following example:
 .Pp
 .Dl "(void)strlcpy(buf, input, sizeof(buf));"
-.Pp
-Note that because
+.Sh SECURITY CONSIDERATIONS
+The
+.Fn strcpy ,
+.Fn strncpy ,
+.Fn stpcpy ,
+and
+.Fn stpncpy
+functions are 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
-is not defined in any standards, it should
-only be used when portability is not a concern.
+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 ,
@@ -217,9 +236,3 @@
 .Fn stpncpy
 was added in
 .Fx 8.0 .
-.Sh SECURITY CONSIDERATIONS
-The
-.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.