soundwire: qcom: fix storing port config out-of-bounds
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Thu, 1 Jun 2023 10:25:25 +0000 (12:25 +0200)
committerVinod Koul <vkoul@kernel.org>
Wed, 21 Jun 2023 11:01:44 +0000 (16:31 +0530)
commit490937d479abe5f6584e69b96df066bc87be92e9
tree85049f35103224badaa38711b5d90df9c1528473
parenta1b828f202ae45b4fce4d21e83679605feb87862
soundwire: qcom: fix storing port config out-of-bounds

The 'qcom_swrm_ctrl->pconfig' has size of QCOM_SDW_MAX_PORTS (14),
however we index it starting from 1, not 0, to match real port numbers.
This can lead to writing port config past 'pconfig' bounds and
overwriting next member of 'qcom_swrm_ctrl' struct.  Reported also by
smatch:

  drivers/soundwire/qcom.c:1269 qcom_swrm_get_port_config() error: buffer overflow 'ctrl->pconfig' 14 <= 14

Fixes: 9916c02ccd74 ("soundwire: qcom: cleanup internal port config indexing")
Cc: <stable@vger.kernel.org>
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <error27@gmail.com>
Link: https://lore.kernel.org/r/202305201301.sCJ8UDKV-lkp@intel.com/
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20230601102525.609627-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/qcom.c