Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b581f17 authored by Alexey Khoroshilov's avatar Alexey Khoroshilov Committed by Greg Kroah-Hartman
Browse files

tty: mxser: fix cycle termination condition in mxser_probe() and mxser_module_init()



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: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
Acked-by: default avatarJiri Slaby <jslaby@suse.cz>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c12f9ea2
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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);