From 396c2c6d5ebf263bccdff5e8ba0d78c5ad241d17 Mon Sep 17 00:00:00 2001 From: zzy Date: Tue, 2 Jun 2026 13:39:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DDMA-BUF=E5=B9=B3?= =?UTF-8?q?=E9=9D=A2=E8=AE=BF=E9=97=AE=E7=BC=BA=E5=B0=91=E8=BE=B9=E7=95=8C?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/window-thumbnail/core/graphics-memory-buffer.cpp | 3 ++- platform/wayland/kywc-capture-manager.cpp | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/window-thumbnail/core/graphics-memory-buffer.cpp b/modules/window-thumbnail/core/graphics-memory-buffer.cpp index edaa00b..e6e1bdc 100644 --- a/modules/window-thumbnail/core/graphics-memory-buffer.cpp +++ b/modules/window-thumbnail/core/graphics-memory-buffer.cpp @@ -101,7 +101,8 @@ bool GraphicsMemoryBuffer::createDmabufResources() EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT, EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT } }; - for (uint32_t i = 0; i < m_bufferInfo.n_planes; i++) { + const uint32_t planeCount = qMin(m_bufferInfo.n_planes, 4u); + for (uint32_t i = 0; i < planeCount; i++) { ADD_ATTRIB(attr_names[i].fd, m_bufferInfo.planes[i].fd); ADD_ATTRIB(attr_names[i].offset, m_bufferInfo.planes[i].offset); ADD_ATTRIB(attr_names[i].pitch, m_bufferInfo.planes[i].stride); diff --git a/platform/wayland/kywc-capture-manager.cpp b/platform/wayland/kywc-capture-manager.cpp index 2d536ed..f8b1bb9 100644 --- a/platform/wayland/kywc-capture-manager.cpp +++ b/platform/wayland/kywc-capture-manager.cpp @@ -195,6 +195,11 @@ void KywcCaptureFrame::Private::bufferWithPlaneCallback(void *data, kywc_capture return; } + if (index >= 4) { + close(fd); + return; + } + p->currentBuffer.planes[index].fd = fd; p->currentBuffer.planes[index].offset = offset; p->currentBuffer.planes[index].stride = stride; -- Gitee