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

Commit 904998bf authored by Vladimirs Ambrosovs's avatar Vladimirs Ambrosovs Committed by Greg Kroah-Hartman
Browse files

staging: fwserial: fix resource leak



This patch fixes the leak, which was present in fwserial driver in the
init function. In case the tty driver allocation failed the function
returned error, leaving debugfs entry in the filesystem.

To fix the issue additional error label was added, so that the code will
jump to it in case of allocation failure, and free debugfs entries.

Signed-off-by: default avatarVladimirs Ambrosovs <rodriguez.twister@gmail.com>
Reviewed-by: default avatarPeter Hurley <peter@hurleysoftware.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 71d667b8
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -2815,13 +2815,14 @@ static int __init fwserial_init(void)
	/* num_ttys/num_ports must not be set above the static alloc avail */
	if (num_ttys + num_loops > MAX_CARD_PORTS)
		num_ttys = MAX_CARD_PORTS - num_loops;

	num_ports = num_ttys + num_loops;

	fwtty_driver = tty_alloc_driver(MAX_TOTAL_PORTS, TTY_DRIVER_REAL_RAW
					| TTY_DRIVER_DYNAMIC_DEV);
	if (IS_ERR(fwtty_driver)) {
		err = PTR_ERR(fwtty_driver);
		return err;
		goto remove_debugfs;
	}

	fwtty_driver->driver_name	= KBUILD_MODNAME;
@@ -2923,7 +2924,9 @@ static int __init fwserial_init(void)
	tty_unregister_driver(fwtty_driver);
put_tty:
	put_tty_driver(fwtty_driver);
remove_debugfs:
	debugfs_remove_recursive(fwserial_debugfs);

	return err;
}