libxcb/bug-262309_xcb-xauthlocalhostname.diff
Stefan Dirsch 18596ddc2d - bug-262309_xcb-xauthlocalhostname.diff,
n_If-auth-with-credentials-for-hostname-fails-retry-with-XAUTHLOCALHOSTNAME.patch
  * fixed build against GCC 14 (boo#1221703)

OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/libxcb?expand=0&rev=76
2024-03-19 13:36:37 +00:00

35 lines
1.4 KiB
Diff

Index: src/xcb_auth.c
===================================================================
--- src/xcb_auth.c.orig
+++ src/xcb_auth.c
@@ -118,6 +118,7 @@ static Xauth *get_authptr(struct sockadd
char hostnamebuf[256]; /* big enough for max hostname */
char dispbuf[40]; /* big enough to hold more than 2^64 base 10 */
int dispbuflen;
+ Xauth *authptr = NULL;
family = FamilyLocal; /* 256 */
switch(sockname->sa_family)
@@ -162,10 +163,20 @@ static Xauth *get_authptr(struct sockadd
addrlen = strlen(addr);
}
- return XauGetBestAuthByAddr (family,
+ authptr = XauGetBestAuthByAddr (family,
(unsigned short) addrlen, addr,
(unsigned short) dispbuflen, dispbuf,
N_AUTH_PROTOS, (char **)authnames, authnameslen);
+ // && !phostname
+ if ((!authptr || !authptr->data_length) && family == FamilyLocal) {
+ if ( (addr = getenv("XAUTHLOCALHOSTNAME")) ) {
+ authptr = XauGetBestAuthByAddr (family,
+ (unsigned short) strlen(addr), addr,
+ (unsigned short) dispbuflen, dispbuf,
+ N_AUTH_PROTOS, (char **) authnames, authnameslen);
+ }
+ }
+ return authptr;
}
#ifdef HASXDMAUTH