]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Hide internal __ifreq function [BZ #18822]
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 2 Oct 2017 00:35:26 +0000 (17:35 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 2 Oct 2017 00:35:46 +0000 (17:35 -0700)
Hide internal __ifreq function to allow direct access within libc.so and
libc.a without using GOT nor PLT.

[BZ #18822]
* include/ifreq.h: New file.
* sysdeps/generic/ifreq.h (__if_nextreq): Removed.
(__ifreq): Likewise.
* sysdeps/mach/hurd/ifreq.h (__if_nextreq): Removed.
(__ifreq): Likewise.

ChangeLog
include/ifreq.h [new file with mode: 0644]
sysdeps/generic/ifreq.h
sysdeps/mach/hurd/ifreq.h

index ad10a7a1350da0046879daceff2e8c34f4b8d60a..7514e861dde53c1e18611c5a9619ddf8f17f6180 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #18822]
+       * include/ifreq.h: New file.
+       * sysdeps/generic/ifreq.h (__if_nextreq): Removed.
+       (__ifreq): Likewise.
+       * sysdeps/mach/hurd/ifreq.h (__if_nextreq): Removed.
+       (__ifreq): Likewise.
+
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
        [BZ #18822]
diff --git a/include/ifreq.h b/include/ifreq.h
new file mode 100644 (file)
index 0000000..94e984c
--- /dev/null
@@ -0,0 +1,14 @@
+#include_next <ifreq.h>
+
+static inline struct ifreq *
+__if_nextreq (struct ifreq *ifr)
+{
+#ifdef _HAVE_SA_LEN
+  if (ifr->ifr_addr.sa_len > sizeof ifr->ifr_addr)
+    return (struct ifreq *) ((char *) &ifr->ifr_addr + ifr->ifr_addr.sa_len);
+#endif
+  return ifr + 1;
+}
+
+extern void __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd)
+     attribute_hidden;
index 6ebd7c83f36506b263edf018212050fe6472d9c8..b39739debb42d7dad13090df45d69f66b86494d9 100644 (file)
 #include <sys/socket.h>
 #include <sys/ioctl.h>
 
-static inline struct ifreq *
-__if_nextreq (struct ifreq *ifr)
-{
-#ifdef _HAVE_SA_LEN
-  if (ifr->ifr_addr.sa_len > sizeof ifr->ifr_addr)
-    return (struct ifreq *) ((char *) &ifr->ifr_addr + ifr->ifr_addr.sa_len);
-#endif
-  return ifr + 1;
-}
-
-extern void __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd);
-
 
 static inline void
 __if_freereq (struct ifreq *ifreqs, int num_ifs)
index eceeb7a2c322a59ed49d33fe7383e2a716166a04..3dd17f773d257fcb23e006b475448dd82061475f 100644 (file)
 #include <sys/ioctl.h>
 #include <sys/mman.h>
 
-static inline struct ifreq *
-__if_nextreq (struct ifreq *ifr)
-{
-#ifdef _HAVE_SA_LEN
-  if (ifr->ifr_addr.sa_len > sizeof ifr->ifr_addr)
-    return (struct ifreq *) ((char *) &ifr->ifr_addr + ifr->ifr_addr.sa_len);
-#endif
-  return ifr + 1;
-}
-
-extern void __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd);
-
 
 static inline void
 __if_freereq (struct ifreq *ifreqs, int num_ifs)