diff mbox

uclibc: add a upstream patch to fix vlc runtime issues

Message ID 20160205063349.GA22649@waldemar-brodkorb.de
State Accepted
Headers show

Commit Message

Waldemar Brodkorb Feb. 5, 2016, 6:33 a.m. UTC
IDN related declaration without implementation is a bad idea.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
 ...e-netdb.h-Do-not-define-IDN-related-flags.patch |   54 ++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 package/uclibc/0001-include-netdb.h-Do-not-define-IDN-related-flags.patch

Comments

Thomas Petazzoni Feb. 5, 2016, 8:57 p.m. UTC | #1
Dear Waldemar Brodkorb,

On Fri, 5 Feb 2016 07:33:49 +0100, Waldemar Brodkorb wrote:
> IDN related declaration without implementation is a bad idea.
> 
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> ---
>  ...e-netdb.h-Do-not-define-IDN-related-flags.patch |   54 ++++++++++++++++++++
>  1 file changed, 54 insertions(+)
>  create mode 100644 package/uclibc/0001-include-netdb.h-Do-not-define-IDN-related-flags.patch

Applied, thanks.

Thomas
diff mbox

Patch

diff --git a/package/uclibc/0001-include-netdb.h-Do-not-define-IDN-related-flags.patch b/package/uclibc/0001-include-netdb.h-Do-not-define-IDN-related-flags.patch
new file mode 100644
index 0000000..c1985ef
--- /dev/null
+++ b/package/uclibc/0001-include-netdb.h-Do-not-define-IDN-related-flags.patch
@@ -0,0 +1,54 @@ 
+From 5e9a78c8a839381add6faa61e196e6dad9143163 Mon Sep 17 00:00:00 2001
+From: Thomas Claveirole <thomas.claveirole@green-communications.fr>
+Date: Tue, 2 Feb 2016 12:13:09 +0100
+Subject: [PATCH] include/netdb.h: Do not define IDN-related flags.
+
+getaddrinfo() does not implement IDN encoding, and always fail when
+provided an IDN flag (e.g., AI_IDN) with EAI_BADFLAGS.  Some packages
+(such as the VLC media player) check for AI_IDN before they use it;
+providing an unimplemented AI_IDN in the libc makes these package
+fail.  As a result they make calls to getaddrinfo() with AI_IDN that
+always fail while they could have made successful calls without AI_IDN
+instead.
+
+Thus, do not define IDN flags: it is better not to compile rather than
+to compile a code that always fail.
+
+Signed-off-by: Thomas Claveirole <thomas.claveirole@green-communications.fr>
+Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
+---
+ include/netdb.h |   11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/include/netdb.h b/include/netdb.h
+index a636b5f..95abe95 100644
+--- a/include/netdb.h
++++ b/include/netdb.h
+@@ -627,16 +627,6 @@ struct addrinfo
+ # define AI_ALL		0x0010	/* Return IPv4 mapped and IPv6 addresses.  */
+ # define AI_ADDRCONFIG	0x0020	/* Use configuration of this host to choose
+ 				   returned address type..  */
+-# ifdef __USE_GNU
+-#  define AI_IDN	0x0040	/* IDN encode input (assuming it is encoded
+-				   in the current locale's character set)
+-				   before looking it up. */
+-#  define AI_CANONIDN	0x0080	/* Translate canonical name from IDN format. */
+-#  define AI_IDN_ALLOW_UNASSIGNED 0x0100 /* Don't reject unassigned Unicode
+-					    code points.  */
+-#  define AI_IDN_USE_STD3_ASCII_RULES 0x0200 /* Validate strings according to
+-						STD3 rules.  */
+-# endif
+ # define AI_NUMERICSERV	0x0400	/* Don't use name resolution.  */
+ 
+ /* Error values for `getaddrinfo' function.  */
+@@ -658,7 +648,6 @@ struct addrinfo
+ #  define EAI_NOTCANCELED -102	/* Request not canceled.  */
+ #  define EAI_ALLDONE	  -103	/* All requests done.  */
+ #  define EAI_INTR	  -104	/* Interrupted by a signal.  */
+-#  define EAI_IDN_ENCODE  -105	/* IDN encoding failed.  */
+ # endif
+ 
+ # ifdef __USE_MISC
+-- 
+1.7.10.4
+