mirror of https://github.com/torvalds/linux.git
When num_parents is 4, __clk_register() occurs an out-of-bounds
when accessing parent_names member. Use ARRAY_SIZE() instead of
hardcode number here.
BUG: KASAN: global-out-of-bounds in __clk_register+0x1844/0x20d8
Read of size 8 at addr ffff800086988e78 by task kworker/u24:3/59
Hardware name: NXP i.MX95 19X19 board (DT)
Workqueue: events_unbound deferred_probe_work_func
Call trace:
dump_backtrace+0x94/0xec
show_stack+0x18/0x24
dump_stack_lvl+0x8c/0xcc
print_report+0x398/0x5fc
kasan_report+0xd4/0x114
__asan_report_load8_noabort+0x20/0x2c
__clk_register+0x1844/0x20d8
clk_hw_register+0x44/0x110
__clk_hw_register_mux+0x284/0x3a8
imx95_bc_probe+0x4f4/0xa70
Fixes:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| clk-busy.c | ||
| clk-composite-7ulp.c | ||
| clk-composite-8m.c | ||
| clk-composite-93.c | ||
| clk-cpu.c | ||
| clk-divider-gate.c | ||
| clk-fixup-div.c | ||
| clk-fixup-mux.c | ||
| clk-frac-pll.c | ||
| clk-fracn-gppll.c | ||
| clk-gate-93.c | ||
| clk-gate-exclusive.c | ||
| clk-gate2.c | ||
| clk-gpr-mux.c | ||
| clk-imx1.c | ||
| clk-imx5.c | ||
| clk-imx6q.c | ||
| clk-imx6sl.c | ||
| clk-imx6sll.c | ||
| clk-imx6sx.c | ||
| clk-imx6ul.c | ||
| clk-imx7d.c | ||
| clk-imx7ulp.c | ||
| clk-imx8-acm.c | ||
| clk-imx8dxl-rsrc.c | ||
| clk-imx8mm.c | ||
| clk-imx8mn.c | ||
| clk-imx8mp-audiomix.c | ||
| clk-imx8mp.c | ||
| clk-imx8mq.c | ||
| clk-imx8qm-rsrc.c | ||
| clk-imx8qxp-lpcg.c | ||
| clk-imx8qxp-lpcg.h | ||
| clk-imx8qxp-rsrc.c | ||
| clk-imx8qxp.c | ||
| clk-imx8ulp.c | ||
| clk-imx25.c | ||
| clk-imx27.c | ||
| clk-imx31.c | ||
| clk-imx35.c | ||
| clk-imx93.c | ||
| clk-imx95-blk-ctl.c | ||
| clk-imxrt1050.c | ||
| clk-lpcg-scu.c | ||
| clk-pfd.c | ||
| clk-pfdv2.c | ||
| clk-pll14xx.c | ||
| clk-pllv1.c | ||
| clk-pllv2.c | ||
| clk-pllv3.c | ||
| clk-pllv4.c | ||
| clk-scu.c | ||
| clk-scu.h | ||
| clk-sscg-pll.c | ||
| clk-vf610.c | ||
| clk.c | ||
| clk.h | ||