about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2016-06-03 09:48:14 +0200
committerFlorian Weimer <fweimer@redhat.com>2016-06-03 17:04:44 +0200
commitcfac4de69cc70fbd6364e58cf77891a7a30f2e09 (patch)
tree6b9b1f5f3e73d21c4be8fd6f29657f3ae6af85c7
parent1c1e7fb65828c99d6e0f0f3857089b559a0c8189 (diff)
downloadglibc-cfac4de69cc70fbd6364e58cf77891a7a30f2e09.tar.gz
glibc-cfac4de69cc70fbd6364e58cf77891a7a30f2e09.tar.xz
glibc-cfac4de69cc70fbd6364e58cf77891a7a30f2e09.zip
libio: Use wmemset instead of __wmemset to avoid linknamespace issue
If the wide string operations are pulled into the link, the
wmemset symbol can cause a linknamespace failure.
-rw-r--r--ChangeLog5
-rw-r--r--libio/wstrops.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 4e7fd30b49..94a95f3c00 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-06-03  Florian Weimer  <fweimer@redhat.com>
+
+	* libio/wstrops.c (_IO_wstr_overflow, enlarge_userbuf): Use
+	__wmemset instead of wmemset.
+
 2016-06-02  Carlos O'Donell  <carlos@redhat.com>
 
 	* sysdeps/unix/sysv/linux/bits/in.h [defined _UAPI_LINUX_IN6_H ||
diff --git a/libio/wstrops.c b/libio/wstrops.c
index 2b9d0368f3..8d0e1cb331 100644
--- a/libio/wstrops.c
+++ b/libio/wstrops.c
@@ -111,7 +111,7 @@ _IO_wstr_overflow (_IO_FILE *fp, _IO_wint_t c)
 	      fp->_wide_data->_IO_buf_base = NULL;
 	    }
 
-	  wmemset (new_buf + old_wblen, L'\0', new_size - old_wblen);
+	  __wmemset (new_buf + old_wblen, L'\0', new_size - old_wblen);
 
 	  _IO_wsetb (fp, new_buf, new_buf + new_size, 1);
 	  fp->_wide_data->_IO_read_base =
@@ -228,9 +228,9 @@ enlarge_userbuf (_IO_FILE *fp, _IO_off64_t offset, int reading)
      new position.  */
   assert (offset >= oldend);
   if (reading)
-    wmemset (wd->_IO_read_base + oldend, L'\0', offset - oldend);
+    __wmemset (wd->_IO_read_base + oldend, L'\0', offset - oldend);
   else
-    wmemset (wd->_IO_write_base + oldend, L'\0', offset - oldend);
+    __wmemset (wd->_IO_write_base + oldend, L'\0', offset - oldend);
 
   return 0;
 }