OSDN Git Service

serial: mxs-auart: Fix potential infinite loop
authorAnton Vasilyev <vasilyev@ispras.ru>
Tue, 7 Aug 2018 10:59:05 +0000 (13:59 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 Nov 2019 14:54:00 +0000 (15:54 +0100)
commit3b767de18989f8f13bbd3d944b791674a8a1416d
treeb082d2e1b0650f1b5fef476a5a296f741786b27f
parentf94cdf46eabb7dc408327ea99708873bbd4258cd
serial: mxs-auart: Fix potential infinite loop

[ Upstream commit 5963e8a3122471cadfe0eba41c4ceaeaa5c8bb4d ]

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>
drivers/tty/serial/mxs-auart.c