clk: visconti: prevent array overflow in visconti_clk_register_gates()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 16 Mar 2022 08:35:33 +0000 (11:35 +0300)
committerStephen Boyd <sboyd@kernel.org>
Thu, 17 Mar 2022 19:21:28 +0000 (12:21 -0700)
commitc5601e0720ce1a3ad895f94a5838530edde01ed3
treef843def20384524c009457bf8aaea0190ad243a0
parente783362eb54cd99b2cac8b3a9aeac942e6f6ac07
clk: visconti: prevent array overflow in visconti_clk_register_gates()

This code was using -1 to represent that there was no reset function.
Unfortunately, the -1 was stored in u8 so the if (clks[i].rs_id >= 0)
condition was always true.  This lead to an out of bounds access in
visconti_clk_register_gates().

Fixes: b4cbe606dc36 ("clk: visconti: Add support common clock driver and reset driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/20220316083533.GA30941@kili
Acked-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/visconti/clkc-tmpv770x.c
drivers/clk/visconti/clkc.c
drivers/clk/visconti/clkc.h