Message ID | 20241107015936.211902-1-luoyifan@cmss.chinamobile.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 23569c8b314925bdb70dd1a7b63cfe6100868315 |
Headers | show |
Series | ASoC: stm: Prevent potential division by zero in stm32_sai_get_clk_div() | expand |
On 11/7/24 02:59, Luo Yifan wrote: > 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> > --- > sound/soc/stm/stm32_sai_sub.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/sound/soc/stm/stm32_sai_sub.c b/sound/soc/stm/stm32_sai_sub.c > index 7bc4a96b7..43fb1dcb9 100644 > --- a/sound/soc/stm/stm32_sai_sub.c > +++ b/sound/soc/stm/stm32_sai_sub.c > @@ -317,7 +317,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; > } Reviewed-by: Olivier Moysan <olivier.moysan@foss.st.com> thanks
diff --git a/sound/soc/stm/stm32_sai_sub.c b/sound/soc/stm/stm32_sai_sub.c index 7bc4a96b7..43fb1dcb9 100644 --- a/sound/soc/stm/stm32_sai_sub.c +++ b/sound/soc/stm/stm32_sai_sub.c @@ -317,7 +317,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; }
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> --- sound/soc/stm/stm32_sai_sub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)