From 31a6750988d7dd431f72ff1ff11bfca83bde5d8c Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Mon, 31 Jul 2017 19:46:22 +0100 Subject: [PATCH] st/dri: NULL check before deref DRI loader .getCapability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Emil Velikov Reviewed-by: Marek Olšák --- src/gallium/state_trackers/dri/dri_screen.c | 6 ++++-- 1 file 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;