[PATCH] dri2: Fix authentication for < v8 clients (v2).

Christopher James Halse Rogers christopher.halse.rogers at canonical.com
Wed Jun 27 19:07:11 PDT 2012

The legacy logic was embarassingly wrong; AuthMagic should return errno,
so returning FALSE only when AuthMagic returns nonzero is exactly wrong.

v2: Match drmAuthMagic by returning -EINVAL rather than EINVAL
    Fix trailing whitespace

Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers at canonical.com>

v2 is not immediately necessary; the sole place that uses this only checks
for zero/non-zero. Matching the rest of the return values will certainly
make it less surprising should this change, however.

 hw/xfree86/dri2/dri2.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index d0f1789..d3b3c73 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -1111,14 +1111,14 @@ DRI2Connect(ScreenPtr pScreen, unsigned int driverType, int *fd,
     return TRUE;
-static Bool
+static int
 DRI2AuthMagic (ScreenPtr pScreen, uint32_t magic)
     DRI2ScreenPtr ds = DRI2GetScreen(pScreen);
-    if (ds == NULL || (*ds->LegacyAuthMagic) (ds->fd, magic))
-        return FALSE;
+    if (ds == NULL)
+        return -EINVAL;
-    return TRUE;
+    return (*ds->LegacyAuthMagic) (ds->fd, magic);

More information about the xorg-devel mailing list