mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
serial: mxs-auart: Fix potential infinite loop
[ Upstream commit 5963e8a312 ]
On the error path of mxs_auart_request_gpio_irq() is performed
backward iterating with index i of enum type. Underline enum type
may be unsigned char. In this case check (--i >= 0) will be always
true and error handling goes into infinite loop.
The patch changes the check so that it is valid for signed and unsigned
types.
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
99722d146c
commit
be9a5ecdd4
@@ -1635,8 +1635,9 @@ static int mxs_auart_request_gpio_irq(struct mxs_auart_port *s)
|
||||
|
||||
/*
|
||||
* If something went wrong, rollback.
|
||||
* Be careful: i may be unsigned.
|
||||
*/
|
||||
while (err && (--i >= 0))
|
||||
while (err && (i-- > 0))
|
||||
if (irq[i] >= 0)
|
||||
free_irq(irq[i], s);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user