linuxOS_AP06/buildroot/package/lvgl/lv_drivers/0013-drm-Fix-memory-read-out-of-bounds.patch
2025-06-03 12:28:32 +08:00

35 lines
1.1 KiB
Diff

From 8140c14a5f82efd8375e8c0f551c68ce86fb2ded Mon Sep 17 00:00:00 2001
From: "yp.xiao" <yp.xiao@rock-chips.com>
Date: Wed, 27 Dec 2023 21:46:15 +0800
Subject: [PATCH 13/16] drm: Fix memory read out of bounds
Vop buff width height is 16 alignment, lvgi ui does not need alignment
Change-Id: I159599cbffdd1ba9aa2799bd6b695b92471be4b0
Signed-off-by: yp.xiao <yp.xiao@rock-chips.com>
---
display/drm.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/display/drm.c b/display/drm.c
index e8ca9667..e78458e1 100644
--- a/display/drm.c
+++ b/display/drm.c
@@ -953,7 +953,12 @@ static void *drm_thread(void *arg)
if (ret)
printf("c_RkRgaBlit error : %s\n", strerror(errno));
#else
- memcpy(bo->ptr, drm_buff, bo->size);
+ for (int i = 0; i < lcd_h; i++)
+ {
+ memcpy(bo->ptr + i * bo->pitch,
+ drm_buff + i * lcd_sw * (LV_COLOR_DEPTH >> 3),
+ lcd_w * (LV_COLOR_DEPTH >> 3));
+ }
#endif
setdrmdisp(bo);
draw_update = 0;
--
2.25.1