2017-08-15 07:38:52

by Colin King

[permalink] [raw]
Subject: [PATCH] usb: gadget: dummy: fix infinite loop because of missing loop decrement

From: Colin Ian King <[email protected]>

The while loop never terminates because the loop counter i is never
decremented. Fix this by decrementing i.

Detected by CoverityScan, CID#751073 ("Infinite Loop")

Signed-off-by: Colin Ian King <[email protected]>
---
drivers/usb/gadget/udc/dummy_hcd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
index 3c3760315910..a030d7923d7d 100644
--- a/drivers/usb/gadget/udc/dummy_hcd.c
+++ b/drivers/usb/gadget/udc/dummy_hcd.c
@@ -2776,7 +2776,7 @@ static int __init init(void)
if (retval < 0) {
i--;
while (i >= 0)
- platform_device_del(the_udc_pdev[i]);
+ platform_device_del(the_udc_pdev[i--]);
goto err_add_udc;
}
}
--
2.11.0


2017-08-15 13:51:59

by Alan Stern

[permalink] [raw]
Subject: Re: [PATCH] usb: gadget: dummy: fix infinite loop because of missing loop decrement

On Tue, 15 Aug 2017, Colin King wrote:

> From: Colin Ian King <[email protected]>
>
> The while loop never terminates because the loop counter i is never
> decremented. Fix this by decrementing i.
>
> Detected by CoverityScan, CID#751073 ("Infinite Loop")
>
> Signed-off-by: Colin Ian King <[email protected]>
> ---
> drivers/usb/gadget/udc/dummy_hcd.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
> index 3c3760315910..a030d7923d7d 100644
> --- a/drivers/usb/gadget/udc/dummy_hcd.c
> +++ b/drivers/usb/gadget/udc/dummy_hcd.c
> @@ -2776,7 +2776,7 @@ static int __init init(void)
> if (retval < 0) {
> i--;
> while (i >= 0)
> - platform_device_del(the_udc_pdev[i]);
> + platform_device_del(the_udc_pdev[i--]);
> goto err_add_udc;
> }
> }

Acked-by: Alan Stern <[email protected]>