svn commit: r325765 - head/lib/libc/string
Warner Losh
imp at FreeBSD.org
Mon Nov 13 17:04:46 UTC 2017
Author: imp
Date: Mon Nov 13 17:04:44 2017
New Revision: 325765
URL: https://svnweb.freebsd.org/changeset/base/325765
Log:
Add notes about overlapping copies.
Add notes to each of these that specifically state that results are
undefined if the strings overlap. In the case of memcpy, we document
the overlapping behavior on FreeBSD (pre-existing). For str*, it is
left unspecified, however, since the default (and x86) implementations
do not handle overlapping strings properly.
PR: 223653
Sponsored by: Netflix
Modified:
head/lib/libc/string/memcpy.3
head/lib/libc/string/strcat.3
head/lib/libc/string/strcpy.3
Modified: head/lib/libc/string/memcpy.3
==============================================================================
--- head/lib/libc/string/memcpy.3 Mon Nov 13 16:53:36 2017 (r325764)
+++ head/lib/libc/string/memcpy.3 Mon Nov 13 17:04:44 2017 (r325765)
@@ -54,6 +54,11 @@ bytes from string
.Fa src
to string
.Fa dst .
+If
+.Fa src
+and
+.Fa dst
+overlap, the results are not defined.
.Sh RETURN VALUES
The
.Fn memcpy
Modified: head/lib/libc/string/strcat.3
==============================================================================
--- head/lib/libc/string/strcat.3 Mon Nov 13 16:53:36 2017 (r325764)
+++ head/lib/libc/string/strcat.3 Mon Nov 13 17:04:44 2017 (r325765)
@@ -62,6 +62,11 @@ then add a terminating
The string
.Fa s
must have sufficient space to hold the result.
+If
+.Fa s
+and
+.Fa append
+overlap, the results are undefined.
.Pp
The
.Fn strncat
@@ -72,6 +77,11 @@ characters from
.Fa append ,
and then adds a terminating
.Ql \e0 .
+If
+.Fa s
+and
+.Fa append
+overlap, the results are undefined.
.Sh RETURN VALUES
The
.Fn strcat
Modified: head/lib/libc/string/strcpy.3
==============================================================================
--- head/lib/libc/string/strcpy.3 Mon Nov 13 16:53:36 2017 (r325764)
+++ head/lib/libc/string/strcpy.3 Mon Nov 13 17:04:44 2017 (r325765)
@@ -63,6 +63,11 @@ to
(including the terminating
.Ql \e0
character.)
+If
+.Fa src
+and
+.Fa dst
+overlap, the results are undefined.
.Pp
The
.Fn stpncpy
@@ -89,6 +94,11 @@ Otherwise,
is
.Em not
terminated.
+If
+.Fa src
+and
+.Fa dst
+overlap, the results are undefined.
.Sh RETURN VALUES
The
.Fn strcpy
More information about the svn-src-all
mailing list