drivers/perf: hisi_pcie: Fix out-of-bound access when valid event group
authorJunhao He <hejunhao3@huawei.com>
Thu, 25 Apr 2024 12:46:25 +0000 (20:46 +0800)
committerWill Deacon <will@kernel.org>
Sun, 28 Apr 2024 07:49:31 +0000 (08:49 +0100)
commit77fce82678ea5fd51442e62febec2004f79e041b
tree878f211fd0d7121aaa5db7773fd48ac6ab490e58
parent4052ce07d5d7e8158dfd5c01c514b930cb689f68
drivers/perf: hisi_pcie: Fix out-of-bound access when valid event group

The perf tool allows users to create event groups through following
cmd [1], but the driver does not check whether the array index is out of
bounds when writing data to the event_group array. If the number of events
in an event_group is greater than HISI_PCIE_MAX_COUNTERS, the memory write
overflow of event_group array occurs.

Add array index check to fix the possible array out of bounds violation,
and return directly when write new events are written to array bounds.

There are 9 different events in an event_group.
[1] perf stat -e '{pmu/event1/, ... ,pmu/event9/}'

Fixes: 8404b0fbc7fb ("drivers/perf: hisi: Add driver for HiSilicon PCIe PMU")
Signed-off-by: Junhao He <hejunhao3@huawei.com>
Reviewed-by: Jijie Shao <shaojijie@huawei.com>
Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/20240425124627.13764-2-hejunhao3@huawei.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/perf/hisilicon/hisi_pcie_pmu.c