aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivek Kasireddy <vivek.kasireddy@intel.com>2025-06-16 21:32:25 -0700
committerMarc-André Lureau <marcandre.lureau@redhat.com>2025-07-14 14:51:45 +0400
commit46c798f0471ca341ce607b5ca15f76b001712f3f (patch)
treee076c6001ef4ee07d2a76adfa502bbd507e6e57d
parent37ff925d5d4a70a951ade42094896246c989742f (diff)
downloadqemu-46c798f0471ca341ce607b5ca15f76b001712f3f.zip
qemu-46c798f0471ca341ce607b5ca15f76b001712f3f.tar.gz
qemu-46c798f0471ca341ce607b5ca15f76b001712f3f.tar.bz2
ui/egl-helpers: Error check the fds in egl_dmabuf_export_texture()
While trying to export and obtain fds associated with a texture, it is possible that the fds returned after eglExportDMABUFImageMESA() call have error values. Therefore, we need to evaluate the value of all fds and return false if any of them are negative. Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Marc-André Lureau <marcandre.lureau@redhat.com> Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com> Cc: Frediano Ziglio <freddy77@gmail.com> Cc: Dongwon Kim <dongwon.kim@intel.com> Cc: Michael Scherle <michael.scherle@rz.uni-freiburg.de> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com> Message-Id: <20250617043546.1022779-2-vivek.kasireddy@intel.com>
-rw-r--r--ui/egl-helpers.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ui/egl-helpers.c b/ui/egl-helpers.c
index 5503a79..e3f2872 100644
--- a/ui/egl-helpers.c
+++ b/ui/egl-helpers.c
@@ -295,6 +295,7 @@ bool egl_dmabuf_export_texture(uint32_t tex_id, int *fd, EGLint *offset,
{
EGLImageKHR image;
EGLuint64KHR modifiers[DMABUF_MAX_PLANES];
+ int i;
image = eglCreateImageKHR(qemu_egl_display, eglGetCurrentContext(),
EGL_GL_TEXTURE_2D_KHR,
@@ -314,6 +315,11 @@ bool egl_dmabuf_export_texture(uint32_t tex_id, int *fd, EGLint *offset,
*modifier = modifiers[0];
}
+ for (i = 0; i < *num_planes; i++) {
+ if (fd[i] < 0) {
+ return false;
+ }
+ }
return true;
}