mirror of
https://gitee.com/openharmony/kernel_linux
synced 2025-02-25 14:11:58 +00:00
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: Alexey Khoroshilov <khoroshilov@ispras.ru> Acked-by: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c12f9ea28e
commit
1b581f1739
@ -2643,9 +2643,9 @@ static int mxser_probe(struct pci_dev *pdev,
|
|||||||
mxvar_sdriver, brd->idx + i, &pdev->dev);
|
mxvar_sdriver, brd->idx + i, &pdev->dev);
|
||||||
if (IS_ERR(tty_dev)) {
|
if (IS_ERR(tty_dev)) {
|
||||||
retval = PTR_ERR(tty_dev);
|
retval = PTR_ERR(tty_dev);
|
||||||
for (i--; i >= 0; i--)
|
for (; i > 0; i--)
|
||||||
tty_unregister_device(mxvar_sdriver,
|
tty_unregister_device(mxvar_sdriver,
|
||||||
brd->idx + i);
|
brd->idx + i - 1);
|
||||||
goto err_relbrd;
|
goto err_relbrd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2751,9 +2751,9 @@ static int __init mxser_module_init(void)
|
|||||||
tty_dev = tty_port_register_device(&brd->ports[i].port,
|
tty_dev = tty_port_register_device(&brd->ports[i].port,
|
||||||
mxvar_sdriver, brd->idx + i, NULL);
|
mxvar_sdriver, brd->idx + i, NULL);
|
||||||
if (IS_ERR(tty_dev)) {
|
if (IS_ERR(tty_dev)) {
|
||||||
for (i--; i >= 0; i--)
|
for (; i > 0; i--)
|
||||||
tty_unregister_device(mxvar_sdriver,
|
tty_unregister_device(mxvar_sdriver,
|
||||||
brd->idx + i);
|
brd->idx + i - 1);
|
||||||
for (i = 0; i < brd->info->nports; i++)
|
for (i = 0; i < brd->info->nports; i++)
|
||||||
tty_port_destroy(&brd->ports[i].port);
|
tty_port_destroy(&brd->ports[i].port);
|
||||||
free_irq(brd->irq, brd);
|
free_irq(brd->irq, brd);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user