From 029522f67dcb39f0c92a6e94895245dc6a226c01 Mon Sep 17 00:00:00 2001 From: Simon Zeni Date: Wed, 21 Sep 2022 13:47:45 -0400 Subject: [PATCH] mesa/st: check egl image and texture target match before binding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Simon Zeni Reviewed-by: Marek Olšák Part-of: --- src/mesa/state_tracker/st_cb_eglimage.c | 6 ++++++ src/mesa/state_tracker/st_cb_texture.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/mesa/state_tracker/st_cb_eglimage.c b/src/mesa/state_tracker/st_cb_eglimage.c index 02567b07619..1c143091166 100644 --- a/src/mesa/state_tracker/st_cb_eglimage.c +++ b/src/mesa/state_tracker/st_cb_eglimage.c @@ -32,6 +32,7 @@ #include "util/u_inlines.h" #include "util/format/u_format.h" #include "st_cb_eglimage.h" +#include "st_cb_texture.h" #include "st_context.h" #include "st_texture.h" #include "st_format.h" @@ -272,6 +273,11 @@ st_bind_egl_image(struct gl_context *ctx, GLenum internalFormat; mesa_format texFormat; + if (stimg->texture->target != gl_target_to_pipe(texObj->Target)) { + _mesa_error(ctx, GL_INVALID_OPERATION, __func__); + return; + } + if (stimg->internalformat) { internalFormat = stimg->internalformat; } else { diff --git a/src/mesa/state_tracker/st_cb_texture.h b/src/mesa/state_tracker/st_cb_texture.h index 1d5d3a39e2e..45984c87616 100644 --- a/src/mesa/state_tracker/st_cb_texture.h +++ b/src/mesa/state_tracker/st_cb_texture.h @@ -43,7 +43,7 @@ struct gl_pixelstore_attrib; struct gl_memory_object; struct gl_sampler_object; -extern enum pipe_texture_target +enum pipe_texture_target gl_target_to_pipe(GLenum target); unsigned