From b9ee46e1d596d11d844301939845b8a9fb00047a Mon Sep 17 00:00:00 2001 From: matthieu Date: Tue, 14 Jan 2020 21:01:32 +0000 Subject: [PATCH] Remove support for XA_IP_ADDRESS from XmuConvertStandardSelection() This cause problems with pledged applications like xterm, as reported by Benjamin Baier and also lacks support for IPv6 as shown in Xorg bug #7611 https://bugs.freedesktop.org/show_bug.cgi?id=7611 Discussed with jca@ and deraadt@ and submitted upstreams --- lib/libXmu/src/CvtStdSel.c | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/lib/libXmu/src/CvtStdSel.c b/lib/libXmu/src/CvtStdSel.c index 36423c6fa..0d577ef6b 100644 --- a/lib/libXmu/src/CvtStdSel.c +++ b/lib/libXmu/src/CvtStdSel.c @@ -64,7 +64,6 @@ in this Software without prior written authorization from The Open Group. #endif #define XOS_USE_XT_LOCKING #endif -#define X_INCLUDE_NETDB_H #include #endif @@ -219,29 +218,6 @@ XmuConvertStandardSelection(Widget w, Time time, Atom *selection, Atom *target, *format = 8; return True; } -#if defined(TCPCONN) - if (*target == XA_IP_ADDRESS(d)) { - char hostname[1024]; -#ifdef XTHREADS_NEEDS_BYNAMEPARAMS - _Xgethostbynameparams hparams; -#endif - struct hostent *hostp; - - hostname[0] = '\0'; - (void) XmuGetHostname (hostname, sizeof hostname); - - if ((hostp = _XGethostbyname (hostname,hparams)) == NULL) - return False; - - if (hostp->h_addrtype != AF_INET) return False; - *length = hostp->h_length; - *value = XtMalloc(*length); - (void) memmove (*value, hostp->h_addr, *length); - *type = XA_NET_ADDRESS(d); - *format = 8; - return True; - } -#endif if (*target == XA_USER(d)) { char *name = (char*)getenv("USER"); if (name == NULL) return False; @@ -310,13 +286,12 @@ XmuConvertStandardSelection(Widget w, Time time, Atom *selection, Atom *target, #if defined(unix) # define NUM_TARGETS 8 #else -# define NUM_TARGETS 7 +# define NUM_TARGETS 6 #endif Atom* std_targets = (Atom*)XtMalloc(NUM_TARGETS*sizeof(Atom)); int i = 0; std_targets[i++] = XA_TIMESTAMP(d); std_targets[i++] = XA_HOSTNAME(d); - std_targets[i++] = XA_IP_ADDRESS(d); std_targets[i++] = XA_USER(d); std_targets[i++] = XA_CLASS(d); std_targets[i++] = XA_NAME(d);