[PATCH] ALSA: rockchip: fix a possible divide-by-zero bug in rockchip_i2s_hw_params()
The variable bclk_rate is checked in: if (bclk_rate && mclk_rate % bclk_rate)
This indicates that bclk_rate can be zero. If so, a divide-by-zero bug will occur: div_bclk = mclk_rate / bclk_rate;
To fix this possible bug, the function returns -EINVAL when bclk_rate is zero.
Signed-off-by: Tuo Li t-li20@mails.tsinghua.edu.cn --- sound/soc/rockchip/rockchip_i2s.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s.c index d1438753edb4..dd0836c32639 100644 --- a/sound/soc/rockchip/rockchip_i2s.c +++ b/sound/soc/rockchip/rockchip_i2s.c @@ -279,7 +279,9 @@ static int rockchip_i2s_hw_params(struct snd_pcm_substream *substream, if (i2s->is_master_mode) { mclk_rate = clk_get_rate(i2s->mclk); bclk_rate = 2 * 32 * params_rate(params); - if (bclk_rate && mclk_rate % bclk_rate) + if (bclk_rate == 0) + return -EINVAL; + if (mclk_rate % bclk_rate) return -EINVAL;
div_bclk = mclk_rate / bclk_rate;
On Sun, Aug 30, 2020 at 05:51:06PM +0800, Tuo Li wrote:
The variable bclk_rate is checked in: if (bclk_rate && mclk_rate % bclk_rate)
Please submit patches using subject lines reflecting the style for the subsystem, this makes it easier for people to identify relevant patches. Look at what existing commits in the area you're changing are doing and make sure your subject lines visually resemble what they're doing. There's no need to resubmit to fix this alone.
On Sun, Aug 30, 2020 at 05:51:06PM +0800, Tuo Li wrote:
The variable bclk_rate is checked in: if (bclk_rate && mclk_rate % bclk_rate)
This doesn't apply against current code, please check and resend:
HEAD is now at bbd59df075ab Merge series "ASoC: Intel: sdw machine driver updates for 5.10" from Kai Vehmanen kai.vehmanen@linux.intel.com: Applying: ASoC: rockchip: fix a possible divide-by-zero bug in rockchip_i2s_hw_params() Using index info to reconstruct a base tree... M sound/soc/rockchip/rockchip_i2s.c Falling back to patching base and 3-way merge... Auto-merging sound/soc/rockchip/rockchip_i2s.c CONFLICT (content): Merge conflict in sou
participants (2)
-
Mark Brown
-
Tuo Li