[PATCH 41/58] Hide internal idna functions [BZ #18822]
H.J. Lu
hjl.tools@gmail.com
Fri Sep 1 18:01:00 GMT 2017
Hide internal idna functions to allow direct access within libc.so and
libc.a without using GOT nor PLT.
[BZ #18822]
* include/idna.h: New file.
* inet/getnameinfo.c: Include <idna.h> instead of
<libidn/idna.h>.
(__idna_to_unicode_lzlz): Removed.
* sysdeps/posix/getaddrinfo.c: Include <idna.h> instead of
<libidn/idna.h>.
(__idna_to_ascii_lz): Removed.
(__idna_to_unicode_lzlz): Likewise.
---
include/idna.h | 8 ++++++++
inet/getnameinfo.c | 4 +---
sysdeps/posix/getaddrinfo.c | 5 +----
3 files changed, 10 insertions(+), 7 deletions(-)
create mode 100644 include/idna.h
diff --git a/include/idna.h b/include/idna.h
new file mode 100644
index 0000000000..dcb271d575
--- /dev/null
+++ b/include/idna.h
@@ -0,0 +1,8 @@
+#ifndef _IDNA_H
+#include <libidn/idna.h>
+
+extern __typeof (idna_to_ascii_lz) __idna_to_ascii_lz attribute_hidden;
+extern __typeof (idna_to_unicode_lzlz ) __idna_to_unicode_lzlz
+ attribute_hidden;
+
+#endif
diff --git a/inet/getnameinfo.c b/inet/getnameinfo.c
index b41e555f3c..292e087362 100644
--- a/inet/getnameinfo.c
+++ b/inet/getnameinfo.c
@@ -73,9 +73,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <scratch_buffer.h>
#ifdef HAVE_LIBIDN
-# include <libidn/idna.h>
-extern int __idna_to_unicode_lzlz (const char *input, char **output,
- int flags);
+# include <idna.h>
#endif
#ifndef min
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index ce099bdf9c..c58d54dff5 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -86,10 +86,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <inet/net-internal.h>
#ifdef HAVE_LIBIDN
-extern int __idna_to_ascii_lz (const char *input, char **output, int flags);
-extern int __idna_to_unicode_lzlz (const char *input, char **output,
- int flags);
-# include <libidn/idna.h>
+# include <idna.h>
#endif
struct gaih_service
--
2.13.5
More information about the Libc-alpha
mailing list