summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2010-03-12 23:51:32 +0100
committerJulien Danjou <julien@danjou.info>2010-03-13 16:20:12 +0100
commitd18d03d6f37ec220805855d840950716e22354e4 (patch)
treef657cb2b9804200877c31785b41137be91246367
parent53a9834e4cdd11aba8c1cc49347f09a958107de8 (diff)
Fix authentication on hpux and Hurd
libxcb's 010e5661 (Fix XDM-AUTHORIZATION-1 (bug #14202)) mistakenly inverted a few lines of code, making local socket authentication fail on hpux and Hurd: when getpeername fails, sockname needs to be initialized by getsockname before its address family can be checked. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Julien Danjou <julien@danjou.info>
-rw-r--r--src/xcb_auth.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/xcb_auth.c b/src/xcb_auth.c
index 104f2f0..00aad23 100644
--- a/src/xcb_auth.c
+++ b/src/xcb_auth.c
@@ -260,10 +260,10 @@ int _xcb_get_auth_info(int fd, xcb_auth_info_t *info, int display)
* case anyway.*/
if (getpeername(fd, sockname, &socknamelen) == -1)
{
- if (sockname->sa_family != AF_UNIX)
- return 0; /* except for AF_UNIX, sockets should have peernames */
if (getsockname(fd, sockname, &socknamelen) == -1)
return 0; /* can only authenticate sockets */
+ if (sockname->sa_family != AF_UNIX)
+ return 0; /* except for AF_UNIX, sockets should have peernames */
gotsockname = 1;
}