Skip to content

Commit 87d315a

Browse files
Mikhail KobukLinus Walleij
authored andcommitted
pinctrl: nuvoton: wpcm450: fix out of bounds write
Write into 'pctrl->gpio_bank' happens before the check for GPIO index validity, so out of bounds write may happen. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes: a1d1e0e ("pinctrl: nuvoton: Add driver for WPCM450") Signed-off-by: Mikhail Kobuk <m.kobuk@ispras.ru> Reviewed-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> Link: https://lore.kernel.org/r/20230825101532.6624-1-m.kobuk@ispras.ru Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
1 parent 00078e8 commit 87d315a

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

drivers/pinctrl/nuvoton/pinctrl-wpcm450.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1062,13 +1062,13 @@ static int wpcm450_gpio_register(struct platform_device *pdev,
10621062
if (ret < 0)
10631063
return ret;
10641064

1065-
gpio = &pctrl->gpio_bank[reg];
1066-
gpio->pctrl = pctrl;
1067-
10681065
if (reg >= WPCM450_NUM_BANKS)
10691066
return dev_err_probe(dev, -EINVAL,
10701067
"GPIO index %d out of range!\n", reg);
10711068

1069+
gpio = &pctrl->gpio_bank[reg];
1070+
gpio->pctrl = pctrl;
1071+
10721072
bank = &wpcm450_banks[reg];
10731073
gpio->bank = bank;
10741074

0 commit comments

Comments
 (0)