[Mesa-dev] [PATCH 05/10] gbm: handle queryImage() failure through rest of gbm_dri_bo_import()
Emil Velikov
emil.l.velikov at gmail.com
Mon Oct 16 16:04:07 UTC 2017
From: Emil Velikov <emil.velikov at collabora.com>
Fixes: 6a7dea93fa7 ("dri: Rework planar image interface")
Cc: Jakob Bornecrantz <jakob.bornecrantz at collabora.co.uk>
Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
---
src/gbm/backends/dri/gbm_dri.c | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
index 9c9066e6661..a6c80cf1ec7 100644
--- a/src/gbm/backends/dri/gbm_dri.c
+++ b/src/gbm/backends/dri/gbm_dri.c
@@ -1048,14 +1048,21 @@ gbm_dri_bo_import(struct gbm_device *gbm,
bo->base.gbm = gbm;
bo->base.format = gbm_format;
- dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_WIDTH,
- (int*)&bo->base.width);
- dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HEIGHT,
- (int*)&bo->base.height);
- dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_STRIDE,
- (int*)&bo->base.stride);
- dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HANDLE,
- &bo->base.handle.s32);
+ query = dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_WIDTH,
+ (int*)&bo->base.width);
+ query &= dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HEIGHT,
+ (int*)&bo->base.height);
+ query &= dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_STRIDE,
+ (int*)&bo->base.stride);
+ query &= dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HANDLE,
+ &bo->base.handle.s32);
+
+ if (!query) {
+ errno = EINVAL;
+ dri->image->destroyImage(bo->image);
+ free(bo);
+ return NULL;
+ }
return &bo->base;
}
--
2.14.1
More information about the mesa-dev
mailing list