memory: gpmc: fix out of bounds read and dereference on gpmc_cs[]
authorColin Ian King <colin.king@canonical.com>
Tue, 23 Feb 2021 19:38:21 +0000 (19:38 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 22 May 2021 08:40:22 +0000 (10:40 +0200)
commita9e6199bc423104cc5f27be9ea3bc3dc448f9787
treefec3b8ce424a88db7fc1aa35ea41fcd370c5e7ae
parent22d7a55997ec35845bbb7e35c505d21fd126b05d
memory: gpmc: fix out of bounds read and dereference on gpmc_cs[]

[ Upstream commit e004c3e67b6459c99285b18366a71af467d869f5 ]

Currently the array gpmc_cs is indexed by cs before it cs is range checked
and the pointer read from this out-of-index read is dereferenced. Fix this
by performing the range check on cs before the read and the following
pointer dereference.

Addresses-Coverity: ("Negative array index read")
Fixes: 9ed7a776eb50 ("ARM: OMAP2+: Fix support for multiple devices on a GPMC chip select")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Tony Lindgren <tony@atomide.com>
Link: https://lore.kernel.org/r/20210223193821.17232-1-colin.king@canonical.com
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/memory/omap-gpmc.c