diff options
author | Bjorn Andersson <[email protected]> | 2020-05-14 18:36:43 -0700 |
---|---|---|
committer | Kishon Vijay Abraham I <[email protected]> | 2020-05-18 19:30:56 +0530 |
commit | 72f039db491e59396edbaa39595d0865aee055ee (patch) | |
tree | 3e156f6a5e9547393e50165406466a46e7ffcae1 /lib/mpi/mpi-mul.c | |
parent | 81530a38a36d411e01ea99116503901f75aa758b (diff) |
phy: qcom-qmp: Ensure register indirection arrays initialized
It's possible that struct qmp_phy_cfg->regs references an array that is
smaller than the possible register lookups that is going to be
performed, with the resulting out-of-bounds read resulting in undefined
behavior.
One such example is when during qcom_qmp_phy_com_init() performs a
qphy_setbits() on entry QPHY_PCS_POWER_DOWN_CONTROL (i.e. 17) with
msm8996_ufsphy_regs_layout only being 12 entries long.
Solve this by inflating all "regs_layout" arrays to ensure that any
remaining entries are zero-initialized, as expected by the code.
Fixes: e4d8b05ad5f9 ("phy: qcom-qmp: Use proper PWRDOWN offset for sm8150 USB")
Signed-off-by: Bjorn Andersson <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Kishon Vijay Abraham I <[email protected]>
Diffstat (limited to 'lib/mpi/mpi-mul.c')
0 files changed, 0 insertions, 0 deletions