Xlib (xcb) uses XauGetBestAuthByAddr() when looking for an authorization. 'xauth [n]list $DISPLAY' used a slightly stricter algorithm which doesn't find a possible authorization for cases where either the family is set to FamilyWild or address the address length is 0.
Signed-off-by: Egbert Eich <[email protected]> --- process.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/process.c b/process.c index 0f719ce..b248799 100644 --- a/process.c +++ b/process.c @@ -1064,11 +1064,13 @@ eq_auth(Xauth *a, Xauth *b) static int match_auth_dpy(register Xauth *a, register Xauth *b) { - return ((a->family == b->family && - a->address_length == b->address_length && - a->number_length == b->number_length && - memcmp(a->address, b->address, a->address_length) == 0 && - memcmp(a->number, b->number, a->number_length) == 0) ? 1 : 0); + return (((a->family == FamilyWild || b->family == FamilyWild || + (a->family == b->family && + a->address_length == b->address_length && + memcmp(a->address, b->address, a->address_length) == 0)) && + (a->number_length == 0 || b->number_length == 0 || + (a->number_length == b->number_length && + memcmp(a->number, b->number, a->number_length) == 0))) ? 1 : 0); } /* return non-zero iff display and authorization type are the same */ -- 1.8.1.4 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
