about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-10-01 17:33:08 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-10-01 17:33:22 -0700
commit43b7dfd1b6cfd1b603e96270dc6a0b1758f81a13 (patch)
treee40743a1f237bf407c3daa742b2ad9b6254cb0f1
parent2c0cd8f81fee4d9dc8e34254f4f6ed56d5bb6f59 (diff)
downloadglibc-43b7dfd1b6cfd1b603e96270dc6a0b1758f81a13.tar.gz
glibc-43b7dfd1b6cfd1b603e96270dc6a0b1758f81a13.tar.xz
glibc-43b7dfd1b6cfd1b603e96270dc6a0b1758f81a13.zip
Hide internal idna functions [BZ #18822]
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.
-rw-r--r--ChangeLog12
-rw-r--r--include/idna.h8
-rw-r--r--inet/getnameinfo.c4
-rw-r--r--sysdeps/posix/getaddrinfo.c5
4 files changed, 22 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index dd228bc2f2..ad10a7a135 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,18 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[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.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* include/plural-exp.h: New file.
 	* intl/plural-exp.c: Include <plural-exp.h> instead of
 	"plural-exp.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