[ldv-project] [PATCH] tty: mxser: fix cycle termination condition in mxser_probe() and mxser_module_init()

Jiri Slaby jslaby at suse.cz
Mon Apr 8 11:18:38 MSK 2013


On 04/07/2013 09:46 PM, Alexey Khoroshilov wrote:
> There is a bug in resources deallocation code in mxser_probe() and mxser_module_init().
> As soon as variable 'i' is unsigned int, cycle termination condition i >= 0 is always true.
> The patch fixes the issue.
> 
> Signed-off-by: Alexey Khoroshilov <khoroshilov at ispras.ru>

Yes, thanks.

Acked-by: Jiri Slaby <jslaby at suse.cz>

> ---
>  drivers/tty/mxser.c |    8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/tty/mxser.c b/drivers/tty/mxser.c
> index 484b6a3..302909c 100644
> --- a/drivers/tty/mxser.c
> +++ b/drivers/tty/mxser.c
> @@ -2643,9 +2643,9 @@ static int mxser_probe(struct pci_dev *pdev,
>  				mxvar_sdriver, brd->idx + i, &pdev->dev);
>  		if (IS_ERR(tty_dev)) {
>  			retval = PTR_ERR(tty_dev);
> -			for (i--; i >= 0; i--)
> +			for (; i > 0; i--)
>  				tty_unregister_device(mxvar_sdriver,
> -					brd->idx + i);
> +					brd->idx + i - 1);
>  			goto err_relbrd;
>  		}
>  	}
> @@ -2751,9 +2751,9 @@ static int __init mxser_module_init(void)
>  			tty_dev = tty_port_register_device(&brd->ports[i].port,
>  					mxvar_sdriver, brd->idx + i, NULL);
>  			if (IS_ERR(tty_dev)) {
> -				for (i--; i >= 0; i--)
> +				for (; i > 0; i--)
>  					tty_unregister_device(mxvar_sdriver,
> -						brd->idx + i);
> +						brd->idx + i - 1);
>  				for (i = 0; i < brd->info->nports; i++)
>  					tty_port_destroy(&brd->ports[i].port);
>  				free_irq(brd->irq, brd);
> 


-- 
js
suse labs



More information about the ldv-project mailing list