Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Input: ti_am335x_tsc - fix off-by-one error in wire_order validation

The current validation 'wire_order[i] > ARRAY_SIZE(config_pins)' allows
wire_order[i] to equal ARRAY_SIZE(config_pins), which causes out-of-bounds
access when used as index in 'config_pins[wire_order[i]]'.

Since config_pins has 4 elements (indices 0-3), the valid range for
wire_order should be 0-3. Fix the off-by-one error by using >= instead
of > in the validation check.

Signed-off-by: Junjie Cao <junjie.cao@intel.com>
Link: https://patch.msgid.link/20251114062817.852698-1-junjie.cao@intel.com
Fixes: bb76dc09ddfc ("input: ti_am33x_tsc: Order of TSC wires, made configurable")
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

authored by

Junjie Cao and committed by
Dmitry Torokhov
248d3a73 806ec7b7

+1 -1
+1 -1
drivers/input/touchscreen/ti_am335x_tsc.c
··· 85 85 wire_order[i] = ts_dev->config_inp[i] & 0x0F; 86 86 if (WARN_ON(analog_line[i] > 7)) 87 87 return -EINVAL; 88 - if (WARN_ON(wire_order[i] > ARRAY_SIZE(config_pins))) 88 + if (WARN_ON(wire_order[i] >= ARRAY_SIZE(config_pins))) 89 89 return -EINVAL; 90 90 } 91 91