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

Commit 30962268 authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Greg Kroah-Hartman
Browse files

tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() in case of error



commit a9c09546e903f1068acfa38e1ee18bded7114b37 upstream.

If clk_get_rate() fails, the clk that has just been allocated needs to be
freed.

Cc: <stable@vger.kernel.org> # v3.3+
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: default avatarAndi Shyti <andi.shyti@kernel.org>
Fixes: 5f5a7a55 ("serial: samsung: switch to clkdev based clock lookup")
Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: default avatarJiri Slaby <jirislaby@kernel.org>
Message-ID: <e4baf6039368f52e5a5453982ddcb9a330fc689e.1686412569.git.christophe.jaillet@wanadoo.fr>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0697a1a5
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -1199,8 +1199,12 @@ static unsigned int s3c24xx_serial_getclk(struct s3c24xx_uart_port *ourport,
			continue;

		rate = clk_get_rate(clk);
		if (!rate)
		if (!rate) {
			dev_err(ourport->port.dev,
				"Failed to get clock rate for %s.\n", clkname);
			clk_put(clk);
			continue;
		}

		if (ourport->info->has_divslot) {
			unsigned long div = rate / req_baud;