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.
This commit is contained in:
Joseph Myers 2015-06-05 21:31:39 +00:00
parent 007f2dd122
commit a5f0adb39b
3 changed files with 7 additions and 3 deletions

View File

@ -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.

2
NEWS
View File

@ -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.

View File

@ -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)