]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Hide __readv and __writev [BZ #18822]
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 1 Oct 2017 22:53:52 +0000 (15:53 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 1 Oct 2017 22:54:10 +0000 (15:54 -0700)
Hide internal __readv and __writev functions to allow direct access
within libc.so and libc.a without using GOT nor PLT.

[BZ #18822]
* include/sys/uio.h (__readv): Add libc_hidden_proto.
(__writev): Likewise.
* misc/readv.c (__readv): Add libc_hidden_def.
* misc/writev.c (__writev): Likewise.
* sysdeps/posix/readv.c (__readv): Likewise.
* sysdeps/posix/writev.c (__writev): Likewise.
* sysdeps/unix/sysv/linux/readv.c: Include <sys/uio.h>.
(__readv): Likewise.
* sysdeps/unix/sysv/linux/writev.c: Include <sys/uio.h>.
(__writev): Likewise.

ChangeLog
include/sys/uio.h
misc/readv.c
misc/writev.c
sysdeps/posix/readv.c
sysdeps/posix/writev.c
sysdeps/unix/sysv/linux/readv.c
sysdeps/unix/sysv/linux/writev.c

index 3726fac199aaac0c7e0b98be0f7b7264d32dfce7..56b44eafc520f961eb255bbdfd6ed54d2a88fbf7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #18822]
+       * include/sys/uio.h (__readv): Add libc_hidden_proto.
+       (__writev): Likewise.
+       * misc/readv.c (__readv): Add libc_hidden_def.
+       * misc/writev.c (__writev): Likewise.
+       * sysdeps/posix/readv.c (__readv): Likewise.
+       * sysdeps/posix/writev.c (__writev): Likewise.
+       * sysdeps/unix/sysv/linux/readv.c: Include <sys/uio.h>.
+       (__readv): Likewise.
+       * sysdeps/unix/sysv/linux/writev.c: Include <sys/uio.h>.
+       (__writev): Likewise.
+
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
        [BZ #18822]
index 20860bfd8254d93a094bd1ccb654b5ea22420b4f..204c4b906d7df9646329a422d55f7e798a876d86 100644 (file)
@@ -5,8 +5,10 @@
 /* Now define the internal interfaces.  */
 extern ssize_t __readv (int __fd, const struct iovec *__iovec,
                        int __count);
+libc_hidden_proto (__readv)
 extern ssize_t __writev (int __fd, const struct iovec *__iovec,
                         int __count);
+libc_hidden_proto (__writev)
 
 /* Used for p{read,write}{v64}v2 implementation.  */
 libc_hidden_proto (preadv)
index 064f88523ca9adcffc4bafc614014de83dbc552d..9ad94d370a0b51de9d1b6bbefa411d33adcd4ae6 100644 (file)
@@ -30,6 +30,7 @@ __readv (int fd, const struct iovec *vector, int count)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__readv)
 weak_alias (__readv, readv)
 
 stub_warning (readv)
index c8d222e04ff29e959fc526dca58b371c7071f24b..8bd2eddf1a3f4450a9ad93e147adc5b35ccb961f 100644 (file)
@@ -30,6 +30,7 @@ __writev (int fd, const struct iovec *vector, int count)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__writev)
 weak_alias (__writev, writev)
 
 stub_warning (writev)
index 5b0c124e89c20d321cc0a38607fcecec1e6170e6..2875c76dafcffcd03269b97b43a7e9ee8cfd462e 100644 (file)
@@ -88,4 +88,5 @@ __readv (int fd, const struct iovec *vector, int count)
 
   return bytes_read;
 }
+libc_hidden_def (__readv)
 weak_alias (__readv, readv)
index 7ce1deb80faccbce4bf7312142811a4715d165a3..89d463033aa68571e71dc4e9b0b79a50ce328e41 100644 (file)
@@ -88,4 +88,5 @@ __writev (int fd, const struct iovec *vector, int count)
 
   return bytes_written;
 }
+libc_hidden_def (__writev)
 weak_alias (__writev, writev)
index 142a0a92a7a44963a4a2b65b425f15e2ad0c71e2..e4713008f1dc3bd1bf9222a8841bd45639847799 100644 (file)
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <unistd.h>
+#include <sys/uio.h>
 #include <sysdep-cancel.h>
 
 ssize_t
@@ -24,4 +25,5 @@ __readv (int fd, const struct iovec *iov, int iovcnt)
 {
   return SYSCALL_CANCEL (readv, fd, iov, iovcnt);
 }
+libc_hidden_def (__readv)
 weak_alias (__readv, readv)
index 1b56cbb709f5238728f025b414cda82878fb31d9..2495fd938ae5c45abf2cd0ea06ace91b279717d9 100644 (file)
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <unistd.h>
+#include <sys/uio.h>
 #include <sysdep-cancel.h>
 
 ssize_t
@@ -24,4 +25,5 @@ __writev (int fd, const struct iovec *iov, int iovcnt)
 {
   return SYSCALL_CANCEL (writev, fd, iov, iovcnt);
 }
+libc_hidden_def (__writev)
 weak_alias (__writev, writev)