Skip to content

Commit ea444b6

Browse files
Cody Xierkhuangtao
authored andcommitted
mfd: display-serdes: Fix out-of-bounds access issue
Checked with kasan, the buggy stacktrace: BUG: KASAN: global-out-of-bounds in serdes_bridge_probe+0x2bc/0x568 Read of size 20 at addr ffffffc009a87240 by task swapper/0/1 CPU: 3 PID: 1 Comm: swapper/0 Tainted: G B 6.1.84 khadas#7 Hardware name: Rockchip RK3576 VEHICLE EVB V20 MOS LINUX Board (DT) Call trace: dump_backtrace+0x11c/0x128 show_stack+0x1c/0x28 dump_stack_lvl+0x64/0x7c print_report+0x150/0x498 kasan_report+0x80/0xf0 kasan_check_range+0xe8/0x198 __asan_loadN+0x20/0x28 serdes_bridge_probe+0x2bc/0x568 platform_probe+0x90/0x108 really_probe+0x118/0x548 __driver_probe_device+0xc0/0x1f0 driver_probe_device+0x60/0x168 Fixes: 563845b ("mfd: display-serdes: add serdes display driver support base on mfd arch") Change-Id: Ib0f6a674d75e0f9861163b0803f327963c3a85e5 Signed-off-by: Cody Xie <[email protected]>
1 parent f503114 commit ea444b6

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

drivers/mfd/display-serdes/serdes-bridge.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
* Author: luowei <[email protected]>
88
*/
99

10+
#include <linux/string.h>
11+
1012
#include "core.h"
1113

1214
static struct serdes_bridge *to_serdes_bridge(struct drm_bridge *bridge)
@@ -24,7 +26,7 @@ static struct mipi_dsi_device *serdes_attach_dsi(struct serdes_bridge *serdes_br
2426
int ret;
2527

2628
if (serdes->chip_data->name)
27-
memcpy(&info.type, serdes->chip_data->name, ARRAY_SIZE(info.type));
29+
strscpy(info.type, serdes->chip_data->name, sizeof(info.type));
2830

2931
SERDES_DBG_MFD("%s: type=%s, name=%s\n", __func__,
3032
info.type, serdes->chip_data->name);

0 commit comments

Comments
 (0)