X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fxcb_auth.c;fp=src%2Fxcb_auth.c;h=93a6f6839bdbe8f709dca299c77279ffad56a0f3;hb=6e2e87d0bbdff87f127986a0666445160d52e6a5;hp=58dfe3a936f91fa5b3752a90642b2c1f510f7ed8;hpb=f916062edf0e04cd4e0a78f6975892f59fae3b60;p=free-sw%2Fxcb%2Flibxcb diff --git a/src/xcb_auth.c b/src/xcb_auth.c index 58dfe3a..93a6f68 100644 --- a/src/xcb_auth.c +++ b/src/xcb_auth.c @@ -243,7 +243,14 @@ int _xcb_get_auth_info(int fd, xcb_auth_info_t *info, int display) int ret = 1; if (getpeername(fd, sockname, &socknamelen) == -1) - return 0; /* can only authenticate sockets */ + { + if (getsockname(fd, sockname, &socknamelen) == -1) + return 0; /* can only authenticate sockets */ + if (sockname->sa_family != AF_UNIX) + return 0; + /* Some systems like hpux or Hurd do not expose peer names + * for UNIX Domain Sockets. We do not need it anyway. */ + } authptr = get_authptr(sockname, socknamelen, display); if (authptr == 0)