ASoC: cs42l52: Fix off-by-one boundary checking for cs42l52_get_clk()
Subsystems (3)
PATCH 1/1 ASoC: cs42l52: Fix off-by-one boundary checking for cs42l52_get_clk()
The caller uses the return value of cs42l52_get_clk as array index, the valid array index is 0 .. ARRAY_SIZE(clk_map_table) - 1. Thus we need to ensure ret is less than ARRAY_SIZE(clk_map_table).
Signed-off-by Axel Lin <[email protected]>
--- sound/soc/codecs/cs42l52.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
sound/soc/codecs/cs42l52.c +1 -1
@@ -749,7 +749,7 @@ static int cs42l52_get_clk(int mclk, int rate) } } } -if (ret >ARRAY_SIZE (clk_map_table)) +if (ret >=ARRAY_SIZE (clk_map_table))return -EINVAL ;return ret; }
Signature · 1 line
1.7.9.5
2012/12/16 Axel Lin <[email protected]>
Quoted 4 lines
The caller uses the return value of
cs42l52_get_clkas array index, the valid array index is 0 ..ARRAY_SIZE(clk_map_table)- 1. Thus we need to ensure ret is less thanARRAY_SIZE(clk_map_table).
Just check the code again, ret is always less than ARRAY_SIZE -1. I think what we missed here is the case no rate is matched.
Axel