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
This commit is contained in:
parent
6869a5f294
commit
b9ee46e1d5
@ -64,7 +64,6 @@ in this Software without prior written authorization from The Open Group.
|
|||||||
#endif
|
#endif
|
||||||
#define XOS_USE_XT_LOCKING
|
#define XOS_USE_XT_LOCKING
|
||||||
#endif
|
#endif
|
||||||
#define X_INCLUDE_NETDB_H
|
|
||||||
#include <X11/Xos_r.h>
|
#include <X11/Xos_r.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -219,29 +218,6 @@ XmuConvertStandardSelection(Widget w, Time time, Atom *selection, Atom *target,
|
|||||||
*format = 8;
|
*format = 8;
|
||||||
return True;
|
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)) {
|
if (*target == XA_USER(d)) {
|
||||||
char *name = (char*)getenv("USER");
|
char *name = (char*)getenv("USER");
|
||||||
if (name == NULL) return False;
|
if (name == NULL) return False;
|
||||||
@ -310,13 +286,12 @@ XmuConvertStandardSelection(Widget w, Time time, Atom *selection, Atom *target,
|
|||||||
#if defined(unix)
|
#if defined(unix)
|
||||||
# define NUM_TARGETS 8
|
# define NUM_TARGETS 8
|
||||||
#else
|
#else
|
||||||
# define NUM_TARGETS 7
|
# define NUM_TARGETS 6
|
||||||
#endif
|
#endif
|
||||||
Atom* std_targets = (Atom*)XtMalloc(NUM_TARGETS*sizeof(Atom));
|
Atom* std_targets = (Atom*)XtMalloc(NUM_TARGETS*sizeof(Atom));
|
||||||
int i = 0;
|
int i = 0;
|
||||||
std_targets[i++] = XA_TIMESTAMP(d);
|
std_targets[i++] = XA_TIMESTAMP(d);
|
||||||
std_targets[i++] = XA_HOSTNAME(d);
|
std_targets[i++] = XA_HOSTNAME(d);
|
||||||
std_targets[i++] = XA_IP_ADDRESS(d);
|
|
||||||
std_targets[i++] = XA_USER(d);
|
std_targets[i++] = XA_USER(d);
|
||||||
std_targets[i++] = XA_CLASS(d);
|
std_targets[i++] = XA_CLASS(d);
|
||||||
std_targets[i++] = XA_NAME(d);
|
std_targets[i++] = XA_NAME(d);
|
||||||
|
Loading…
Reference in New Issue
Block a user