dri2: Fix detection of wrong prime_id in GetScreenPrime.

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.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Michal Srb 2014-04-15 18:54:35 +03:00 committed by Keith Packard
parent c08d2b8ccb
commit 3dba171f5e

View File

@ -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