misc: hmc6352: fix potential Spectre v1
authorGustavo A. R. Silva <gustavo@embeddedor.com>
Wed, 15 Aug 2018 15:50:41 +0000 (10:50 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 12 Sep 2018 07:31:00 +0000 (09:31 +0200)
commitde916736aaaadddbd6061472969f667b14204aa9
tree540add0d0bf39d78d40664c1d6687b2444c27acd
parent86503bd35dec0ce363e9fdbf5299927422ed3899
misc: hmc6352: fix potential Spectre v1

val is indirectly controlled by user-space, hence leading to a
potential exploitation of the Spectre variant 1 vulnerability.

This issue was detected with the help of Smatch:

drivers/misc/hmc6352.c:54 compass_store() warn: potential spectre issue
'map' [r]

Fix this by sanitizing val before using it to index map

Notice that given that speculation windows are large, the policy is
to kill the speculation on the first load and not worry if it can be
completed with a dependent load/store [1].

[1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2

Cc: stable@vger.kernel.org
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/hmc6352.c