Mesa (master): st/dri: check pipe_screen->resource_get_handle() return value

Emil Velikov evelikov at kemper.freedesktop.org
Tue Sep 27 12:47:45 UTC 2016


Module: Mesa
Branch: master
Commit: aa560e8e6328acd5b8feec1fea54dec06ae21368
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=aa560e8e6328acd5b8feec1fea54dec06ae21368

Author: Nicholas Bishop <nbishop at neverware.com>
Date:   Thu Sep 22 16:04:13 2016 +0100

st/dri: check pipe_screen->resource_get_handle() return value

Change dri2_query_image to check the return value of resource_get_handle
and return GL_FALSE if an error occurs.

For reference this is an example callstack that should propagate the
error back to the user:

    i915_drm_buffer_get_handle
    i915_texture_get_handle
    u_resource_get_handle_vtbl
    dri2_query_image
    gbm_dri_bo_get_fd
    gbm_bo_get_fd

Cc: mesa-stable at lists.freedesktop.org
Signed-off-by: Nicholas Bishop <nbishop at neverware.com>
Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com> (v1)
[Emil Velikov: Split from larger patch, polish coding style, cc stable]
Signed-off-by: Emil Velikov <emil.velikov at collabora.com>

---

 src/gallium/state_trackers/dri/dri2.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c
index a22e7ee..64d9c3e 100644
--- a/src/gallium/state_trackers/dri/dri2.c
+++ b/src/gallium/state_trackers/dri/dri2.c
@@ -1055,8 +1055,10 @@ dri2_query_image(__DRIimage *image, int attrib, int *value)
       return GL_TRUE;
    case __DRI_IMAGE_ATTRIB_FD:
       whandle.type= DRM_API_HANDLE_TYPE_FD;
-      image->texture->screen->resource_get_handle(image->texture->screen,
-         NULL, image->texture, &whandle, usage);
+      if (!image->texture->screen->resource_get_handle(image->texture->screen,
+            NULL, image->texture, &whandle, usage))
+         return GL_FALSE;
+
       *value = whandle.handle;
       return GL_TRUE;
    case __DRI_IMAGE_ATTRIB_FORMAT:




More information about the mesa-commit mailing list