Skip to content

Commit

Permalink
tty: mxser: fix cycle termination condition in mxser_probe() and mxse…
Browse files Browse the repository at this point in the history
…r_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: Alexey Khoroshilov <khoroshilov@ispras.ru>
Acked-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Alexey Khoroshilov authored and Greg Kroah-Hartman committed Apr 8, 2013
1 parent c12f9ea commit 1b581f1
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/tty/mxser.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 1b581f1

Please sign in to comment.