about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-06-05 21:31:39 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-06-05 21:31:39 +0000
commita5f0adb39b3a029b3fcd1b0d879eb45d9bd742cd (patch)
tree72b208fb2ca945da27bdf767170a96fe4bdc1b02
parent007f2dd1228a4b21b10756c696876babb8cf86cd (diff)
downloadglibc-a5f0adb39b3a029b3fcd1b0d879eb45d9bd742cd.tar.gz
glibc-a5f0adb39b3a029b3fcd1b0d879eb45d9bd742cd.tar.xz
glibc-a5f0adb39b3a029b3fcd1b0d879eb45d9bd742cd.zip
Fix regex wcrtomb namespace (bug 18496).
The regex code brings in references to wcrtomb, which isn't in all the
standards that contain regex.  This patch makes it call __wcrtomb
instead (in fact some places already called __wcrtomb, so this patch
makes it internally consistent about which name is used).

Tested for x86_64 and x86 that installed stripped shared libraries are
unchanged by the patch.

	[BZ #18496]
	* posix/regex_internal.c (build_wcs_upper_buffer): Call __wcrtomb
	instead of wcrtomb.
-rw-r--r--ChangeLog4
-rw-r--r--NEWS2
-rw-r--r--posix/regex_internal.c4
3 files changed, 7 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ec0086be6f..19f45eb99d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2015-06-05  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #18496]
+	* posix/regex_internal.c (build_wcs_upper_buffer): Call __wcrtomb
+	instead of wcrtomb.
+
 	[BZ #18483]
 	* signal/signal.h [__USE_XOPEN2K] (psignal): Change condition to
 	[__USE_XOPEN2K8].  Remove redundant #endif.
diff --git a/NEWS b/NEWS
index 17fd20735a..3fc313c8ba 100644
--- a/NEWS
+++ b/NEWS
@@ -20,7 +20,7 @@ Version 2.22
   18111, 18116, 18125, 18128, 18138, 18185, 18196, 18197, 18206, 18210,
   18211, 18217, 18220, 18221, 18234, 18244, 18247, 18287, 18319, 18324,
   18333, 18346, 18397, 18409, 18410, 18412, 18418, 18422, 18434, 18444,
-  18468, 18469, 18470, 18483, 18495.
+  18468, 18469, 18470, 18483, 18495, 18496.
 
 * Cache information can be queried via sysconf() function on s390 e.g. with
   _SC_LEVEL1_ICACHE_SIZE as argument.
diff --git a/posix/regex_internal.c b/posix/regex_internal.c
index d77d3a14dc..8597d7ed9a 100644
--- a/posix/regex_internal.c
+++ b/posix/regex_internal.c
@@ -317,7 +317,7 @@ build_wcs_upper_buffer (re_string_t *pstr)
 		  size_t mbcdlen;
 
 		  wcu = __towupper (wc);
-		  mbcdlen = wcrtomb (buf, wcu, &prev_st);
+		  mbcdlen = __wcrtomb (buf, wcu, &prev_st);
 		  if (BE (mbclen == mbcdlen, 1))
 		    memcpy (pstr->mbs + byte_idx, buf, mbclen);
 		  else
@@ -387,7 +387,7 @@ build_wcs_upper_buffer (re_string_t *pstr)
 		size_t mbcdlen;
 
 		wcu = __towupper (wc);
-		mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st);
+		mbcdlen = __wcrtomb ((char *) buf, wcu, &prev_st);
 		if (BE (mbclen == mbcdlen, 1))
 		  memcpy (pstr->mbs + byte_idx, buf, mbclen);
 		else if (mbcdlen != (size_t) -1)