[lvc-project] [PATCH] Input: adp5588-keys Add check on return code
Fedor Pchelkin
pchelkin at ispras.ru
Mon Apr 21 11:51:13 MSK 2025
On Mon, 31. Mar 12:49, Denis Arefev wrote:
> @@ -519,14 +519,19 @@ static void adp5588_report_events(struct adp5588_kpad *kpad, int ev_cnt)
> int i;
>
> for (i = 0; i < ev_cnt; i++) {
> - int key = adp5588_read(kpad->client, KEY_EVENTA + i);
> - int key_val = key & KEY_EV_MASK;
> - int key_press = key & KEY_EV_PRESSED;
> + int key, key_val, key_press;
> +
> + key = adp5588_read(kpad->client, KEY_EVENTA + i);
> + if (key < 0)
> + continue;
> +
> + key_val = key & KEY_EV_MASK;
> + key_press = key & KEY_EV_PRESSED;
>
> if (key_val >= GPI_PIN_BASE && key_val <= GPI_PIN_END) {
> /* gpio line used as IRQ source */
> adp5588_gpio_irq_handle(kpad, key_val, key_press);
> - } else {
> + } else if (key_val > 0) {
> int row = (key_val - 1) / ADP5588_COLS_MAX;
> int col = (key_val - 1) % ADP5588_COLS_MAX;
> int code = MATRIX_SCAN_CODE(row, col, kpad->row_shift);
Исходя из того, как в этом блоке вычисляется индекс code, можно ли быть
уверенным, что он не превысит верхнюю границу массива?
Было бы правильным добавить в адресаты также "Nuno Sá" <noname.nuno at gmail.com>
- по крайней мере он единственный, кто проявлял заинтересованность..
More information about the lvc-project
mailing list