mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 09:43:32 +08:00
Hide internal __ifreq function [BZ #18822]
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.
This commit is contained in:
parent
43b7dfd1b6
commit
b4744101f3
@ -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]
|
||||
|
14
include/ifreq.h
Normal file
14
include/ifreq.h
Normal file
@ -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;
|
@ -23,18 +23,6 @@
|
||||
#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)
|
||||
|
@ -24,18 +24,6 @@
|
||||
#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)
|
||||
|
Loading…
Reference in New Issue
Block a user