ppdev: fix memory leak
The variable name was only released if parport_register_dev_model() fails. Now that we are using the device-model the parport driver will duplicate the name and use it. So we can release the variable after the device has been registered with the parport. Suggested-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
9ff2007bea
Коммит
2bd362d5f4
|
@ -305,10 +305,10 @@ static int register_device(int minor, struct pp_struct *pp)
|
||||||
ppdev_cb.private = pp;
|
ppdev_cb.private = pp;
|
||||||
pdev = parport_register_dev_model(port, name, &ppdev_cb, minor);
|
pdev = parport_register_dev_model(port, name, &ppdev_cb, minor);
|
||||||
parport_put_port(port);
|
parport_put_port(port);
|
||||||
|
kfree(name);
|
||||||
|
|
||||||
if (!pdev) {
|
if (!pdev) {
|
||||||
printk(KERN_WARNING "%s: failed to register device!\n", name);
|
printk(KERN_WARNING "%s: failed to register device!\n", name);
|
||||||
kfree(name);
|
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче