diff mbox series

perf/arm-cmn: Fix filter_sel lookup

Message ID bebba768156aa3c0757140457bdd0fec10819388.1652217788.git.robin.murphy@arm.com (mailing list archive)
State New, archived
Headers show
Series perf/arm-cmn: Fix filter_sel lookup | expand

Commit Message

Robin Murphy May 10, 2022, 9:23 p.m. UTC
Carefully considering the bounds of an array is all well and good,
until you forget that that array also contains a NULL sentinel at
the end and dereference it. So close...

Reported-by: Qian Cai <quic_qiancai@quicinc.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
---
 drivers/perf/arm-cmn.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Will Deacon May 11, 2022, 9:32 a.m. UTC | #1
On Tue, 10 May 2022 22:23:08 +0100, Robin Murphy wrote:
> Carefully considering the bounds of an array is all well and good,
> until you forget that that array also contains a NULL sentinel at
> the end and dereference it. So close...
> 
> 

Applied to will (for-next/perf), thanks!

[1/1] perf/arm-cmn: Fix filter_sel lookup
      https://git.kernel.org/will/c/3630b2a86390

Cheers,
diff mbox series

Patch

diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index 15586bbec2f7..282d2f874ec1 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -1514,7 +1514,7 @@  static enum cmn_filter_select arm_cmn_filter_sel(enum cmn_model model,
 	struct arm_cmn_event_attr *e;
 	int i;
 
-	for (i = 0; i < ARRAY_SIZE(arm_cmn_event_attrs); i++) {
+	for (i = 0; i < ARRAY_SIZE(arm_cmn_event_attrs) - 1; i++) {
 		e = container_of(arm_cmn_event_attrs[i], typeof(*e), attr.attr);
 		if (e->model & model && e->type == type && e->eventid == eventid)
 			return e->fsel;