]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ASoC: stm: Prevent potential division by zero in stm32_sai_get_clk_div()
authorLuo Yifan <luoyifan@cmss.chinamobile.com>
Thu, 7 Nov 2024 01:59:36 +0000 (09:59 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 18:47:42 +0000 (19:47 +0100)
[ Upstream commit 23569c8b314925bdb70dd1a7b63cfe6100868315 ]

This patch checks if div is less than or equal to zero (div <= 0). If
div is zero or negative, the function returns -EINVAL, ensuring the
division operation is safe to perform.

Signed-off-by: Luo Yifan <luoyifan@cmss.chinamobile.com>
Reviewed-by: Olivier Moysan <olivier.moysan@foss.st.com>
Link: https://patch.msgid.link/20241107015936.211902-1-luoyifan@cmss.chinamobile.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/stm/stm32_sai_sub.c

index 3a7f0102b4c5c2d0d6c65758a8d280264f833a6c..90e4757f76b0ff3fdc38fb8fb063668699120e40 100644 (file)
@@ -319,7 +319,7 @@ static int stm32_sai_get_clk_div(struct stm32_sai_sub_data *sai,
        int div;
 
        div = DIV_ROUND_CLOSEST(input_rate, output_rate);
-       if (div > SAI_XCR1_MCKDIV_MAX(version)) {
+       if (div > SAI_XCR1_MCKDIV_MAX(version) || div <= 0) {
                dev_err(&sai->pdev->dev, "Divider %d out of range\n", div);
                return -EINVAL;
        }