Commit 87d315a3 authored by Mikhail Kobuk's avatar Mikhail Kobuk Committed by Linus Walleij
Browse files

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: a1d1e0e3 ("pinctrl: nuvoton: Add driver for WPCM450")
Signed-off-by: default avatarMikhail Kobuk <m.kobuk@ispras.ru>
Reviewed-by: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
Reviewed-by: default avatarJonathan Neuschäfer <j.neuschaefer@gmx.net>
Link: https://lore.kernel.org/r/20230825101532.6624-1-m.kobuk@ispras.ru


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 00078e83
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1062,13 +1062,13 @@ static int wpcm450_gpio_register(struct platform_device *pdev,
		if (ret < 0)
			return ret;

		gpio = &pctrl->gpio_bank[reg];
		gpio->pctrl = pctrl;

		if (reg >= WPCM450_NUM_BANKS)
			return dev_err_probe(dev, -EINVAL,
					     "GPIO index %d out of range!\n", reg);

		gpio = &pctrl->gpio_bank[reg];
		gpio->pctrl = pctrl;

		bank = &wpcm450_banks[reg];
		gpio->bank = bank;