diff options
author | Emil Velikov <[email protected]> | 2017-07-31 19:46:22 +0100 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2017-08-02 20:42:19 +0100 |
commit | 31a6750988d7dd431f72ff1ff11bfca83bde5d8c (patch) | |
tree | 8f2a3b2f6fca2454ccf3b7c1d4a2e71b8a44f307 | |
parent | dd9eb8db13b85a764d29c0c2fa1b0c416fae7581 (diff) |
st/dri: NULL check before deref DRI loader .getCapability
One could have vX+1 which introduces another entrypoint without
implementing older ones.
v2: Rebase, while keeping loaderPrivate
Fixes: 1bf703e4ea5 ("dri_interface,egl,gallium: only expose RGBA visuals
on Android")
Cc: 17.2 <[email protected]>
Signed-off-by: Emil Velikov <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
-rw-r--r-- | src/gallium/state_trackers/dri/dri_screen.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/dri/dri_screen.c b/src/gallium/state_trackers/dri/dri_screen.c index f888abd6e70..b992d24068b 100644 --- a/src/gallium/state_trackers/dri/dri_screen.c +++ b/src/gallium/state_trackers/dri/dri_screen.c @@ -93,10 +93,12 @@ dri_loader_get_cap(struct dri_screen *screen, enum dri_loader_cap cap) const __DRIdri2LoaderExtension *dri2_loader = screen->sPriv->dri2.loader; const __DRIimageLoaderExtension *image_loader = screen->sPriv->image.loader; - if (dri2_loader && dri2_loader->base.version >= 4) + if (dri2_loader && dri2_loader->base.version >= 4 && + dri2_loader->getCapability) return dri2_loader->getCapability(screen->sPriv->loaderPrivate, cap); - if (image_loader && image_loader->base.version >= 2) + if (image_loader && image_loader->base.version >= 2 && + image_loader->getCapability) return image_loader->getCapability(screen->sPriv->loaderPrivate, cap); return 0; |