]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
BZ #431 Fix manual of strncat/wcsncat.
authorOndřej Bílka <neleai@seznam.cz>
Thu, 3 Oct 2013 17:53:45 +0000 (19:53 +0200)
committerOndřej Bílka <neleai@seznam.cz>
Thu, 3 Oct 2013 17:54:23 +0000 (19:54 +0200)
ChangeLog
NEWS
manual/string.texi

index 12c24176796f6caa401132ab0067e4215d7b97f5..e08ff75153f6fa68c6d36c1fb18ff2272746e9df 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-10-03  Ondřej Bílka  <neleai@seznam.cz>
+
+       [BZ #431]
+       * manual/string.texi: Fix strncat and wcsncat.
+
 2013-10-03  Brooks Moses  <bmoses@google.com>
 
        [BZ #15915]
diff --git a/NEWS b/NEWS
index f77d80954896881c5cc7ada8f8db5551a6f1d0a6..597b0d887ecfd51468cb557b8bfd8304bc07d005 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,11 +9,12 @@ Version 2.19
 
 * The following bugs are resolved with this release:
 
-  13985, 14155, 14547, 14699, 15048, 15400, 15427, 15522, 15531, 15532,
-  15608, 15609, 15610, 15640, 15681, 15736, 15748, 15749, 15754, 15760,
-  15797, 15844, 15849, 15855, 15856, 15857, 15859, 15867, 15886, 15887,
-  15890, 15892, 15893, 15895, 15897, 15905, 15909, 15919, 15921, 15923,
-  15939, 15963, 15966, 15988.
+  431, 13985, 14155, 14547, 14699, 15048, 15400, 15427, 15522, 15531,
+  15532, 15608, 15609, 15610, 15640, 15681, 15736, 15748, 15749, 15754,
+  15760, 15797, 15844, 15849, 15855, 15856, 15857, 15859, 15867, 15886,
+  15887, 15890, 15892, 15893, 15895, 15897, 15905, 15909, 15919, 15921,
+  15887, 15890, 15892, 15893, 15895, 15897, 15905, 15909, 15919, 15921,
+  15923, 15939, 15963, 15966, 15988.
 
 * CVE-2012-4412 The strcoll implementation caches indices and rules for
   large collation sequences to optimize multiple passes.  This cache
index 3329761fc978186de52d67f794cff1849b4d65ed..1e45d9ddbc65e07a0f7d9ecdc2e67e8394088a2f 100644 (file)
@@ -955,8 +955,8 @@ The @code{strncat} function could be implemented like this:
 char *
 strncat (char *to, const char *from, size_t size)
 @{
-  to[strlen (to) + size] = '\0';
-  strncpy (to + strlen (to), from, size);
+  memcpy (to + strlen (to), from, strnlen (from, size));
+  to[strlen (to) + strnlen (from, size)] = '\0';
   return to;
 @}
 @end group
@@ -982,8 +982,8 @@ wchar_t *
 wcsncat (wchar_t *restrict wto, const wchar_t *restrict wfrom,
          size_t size)
 @{
-  wto[wcslen (to) + size] = L'\0';
-  wcsncpy (wto + wcslen (wto), wfrom, size);
+  memcpy (wto + wcslen (wto), wfrom, wcsnlen (wfrom, size) * sizeof (wchar_t));
+  wto[wcslen (to) + wcsnlen (wfrom, size)] = '\0';
   return wto;
 @}
 @end group