--- xorg-server-1.3.0.0/os/access.c.bak 2007-08-25 22:54:32.324544000 +0300 +++ xorg-server-1.3.0.0/os/access.c 2007-08-26 03:08:26.409496484 +0300 @@ -286,6 +286,13 @@ EnableLocalHost (void) { if (!UsingXdmcp) { + HOST *hosttmp; + + for (hosttmp = validhosts; hosttmp; hosttmp = hosttmp->next) + { + if ((hosttmp->family == FamilyServerInterpreted)) + return; + } LocalHostEnabled = TRUE; AddLocalHosts (); } @@ -1273,9 +1280,16 @@ ResetHosts (char *display) if (family == FamilyServerInterpreted) { - len = siCheckAddr(hostname, hostlen); - if (len >= 0) { - NewHost(family, hostname, len, FALSE); + char *delim; + + delim = strchr(hostname, ':'); + if (delim) { + *delim = '\0'; + len = siCheckAddr(hostname, hostlen); + *delim = ':'; + if (len >= 0) { + NewHost(family, hostname, hostlen, FALSE); + } } } else @@ -1809,8 +1823,9 @@ InvalidHost ( pointer addr; register HOST *selfhost, *host; - if (!AccessEnabled) /* just let them in */ - return(0); + if (!AccessEnabled) /* just let them in */ + return(0); + family = ConvertAddr (saddr, &len, (pointer *)&addr); if (family == -1) return 1; @@ -1841,7 +1856,7 @@ InvalidHost ( return (0); } } else { - if (addrEqual (family, addr, len, host)) + if (addrEqual (family, addr, len, host)) return (0); } @@ -2003,8 +2018,11 @@ siAddrMatch(int family, pointer addr, in Bool matches = FALSE; struct siType *s; const char *valueString; - int addrlen; + int addrlen = 0; + char *delim; + delim = memchr(host->addr, ':', host->len); + if (delim) *delim = '\0'; valueString = (const char *) memchr(host->addr, '\0', host->len); if (valueString != NULL) { for (s = siTypeList; s != NULL ; s = s->next) { --- xorg-server-1.3.0.0/os/connection.c.bak 2007-02-18 03:37:56.000000000 +0200 +++ xorg-server-1.3.0.0/os/connection.c 2007-08-26 02:28:32.722061237 +0300 @@ -555,6 +555,7 @@ AuthAudit (ClientPtr client, Bool letin, char addr[128]; char *out = addr; int client_uid; + int client_gid; char client_uid_string[64]; #ifdef HAS_GETPEERUCRED ucred_t *peercred = NULL; @@ -610,9 +611,9 @@ AuthAudit (ClientPtr client, Bool letin, (long) client_uid, (long) client_pid, (long) client_zid); } #else - if (LocalClientCred(client, &client_uid, NULL) != -1) { + if (LocalClientCred(client, &client_uid, &client_gid) != -1) { snprintf(client_uid_string, sizeof(client_uid_string), - " (uid %d)", client_uid); + " (uid %d, gid %d)", client_uid, client_gid); } #endif else {