Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Nov 2017 17:04:44 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r325765 - head/lib/libc/string
Message-ID:  <201711131704.vADH4iZ9035812@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711131704.vADH4iZ9035812>