[PATCH libXmu 1/2] Remove support for XA_IP_ADDRESS
Matthieu Herrb
matthieu at herrb.eu
Tue Jan 14 20:45:29 UTC 2020
This code has a number of issues:
- It doesn't support IPv6 https://bugs.freedesktop.org/show_bug.cgi?id=7611
- The IP address is set by the selection owner so it doesn't bring any
security for anyone querying the selection
- The extra DNS query that it does is problematic in some sandboxed
environments (like OpenBSD's pledge
https://marc.info/?l=openbsd-bugs&m=157842725819911&w=2)
Signed-off-by: Matthieu Herrb <matthieu at herrb.eu>
---
src/CvtStdSel.c | 27 +--------------------------
1 file changed, 1 insertion(+), 26 deletions(-)
diff --git a/src/CvtStdSel.c b/src/CvtStdSel.c
index 36423c6..0d577ef 100644
--- a/src/CvtStdSel.c
+++ b/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 <X11/Xos_r.h>
#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);
--
2.24.1
More information about the xorg-devel
mailing list