diff options
author | Philipp Zabel <[email protected]> | 2017-06-30 10:39:53 +0200 |
---|---|---|
committer | Andres Gomez <[email protected]> | 2017-07-08 15:47:59 +0300 |
commit | 8db6b8326758c0d3209ee90a7e3cf08ca88d223f (patch) | |
tree | ba2d9d86ba5cfd837d1708fb9bd0555bbc7d32d0 /src | |
parent | c50ed4cadec1f37a6cef474160feb021674112bc (diff) |
st/mesa: release EGLImage on EGLImageTarget* error
The smapi->get_egl_image() call in st_egl_image_get_surface() stores a
reference to the EGLImage's texture in stimg.texture. That reference is
released via pipe_resource_reference(&stimg.texture, NULL) before stimg
goes out of scope at the end of the function, but not in the error path
if !is_format_supported().
Fixes: 83e9de25f325 ("st/mesa: EGLImageTarget* error handling")
Cc: [email protected]
Signed-off-by: Philipp Zabel <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
(cherry picked from commit 7d7bcd65d6019dfb63f31138a426fe2a043016db)
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/state_tracker/st_cb_eglimage.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_cb_eglimage.c b/src/mesa/state_tracker/st_cb_eglimage.c index a104b649eae..972bdf7b782 100644 --- a/src/mesa/state_tracker/st_cb_eglimage.c +++ b/src/mesa/state_tracker/st_cb_eglimage.c @@ -96,6 +96,7 @@ st_egl_image_get_surface(struct gl_context *ctx, GLeglImageOES image_handle, if (!is_format_supported(screen, stimg.format, stimg.texture->nr_samples, usage)) { /* unable to specify a texture object using the specified EGL image */ + pipe_resource_reference(&stimg.texture, NULL); _mesa_error(ctx, GL_INVALID_OPERATION, "%s(format not supported)", error); return NULL; } |