[PATCH] dri2: Fix detection of wrong prime_id in GetScreenPrime.
Michal Srb
msrb at suse.com
Tue Apr 15 08:54:35 PDT 2014
Checking the iterating variable ("slave") against null can not detect if the
xorg_list_for_each_entry finished without break being invoked - slave variable
will be always non-null. This caused segfault whenever someone tried to use
DRI_PRIME with incorrect id while having at least one render offloading slave
configured.
Restructurize the GetScreenPrime to work as expected.
diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index 729a323..5b2c662 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -156,11 +156,9 @@ GetScreenPrime(ScreenPtr master, int prime_id)
ds = DRI2GetScreen(slave);
if (ds->prime_id == prime_id)
- break;
+ return slave;
}
- if (!slave)
- return master;
- return slave;
+ return master;
}
static DRI2ScreenPtr
More information about the xorg-devel
mailing list