diff options
author | Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com> | 2020-12-10 10:25:40 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2020-12-11 13:23:01 +0000 |
commit | 631c78ed72bbf852cc09b24e4e4e412ed88770f2 (patch) | |
tree | 3d1d12e3e166bdca6c2a1d3d13e325558f710e9d /sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c | |
parent | f5824e5ce1cdba523a357a4d3ffbe0876a27330f (diff) |
ASoC: topology: Fix wrong size check
Dan reported that smatch reports wrong size check and after analysis it
is confirmed that we are comparing wrong value: pointer size instead of
array size. However the check itself is problematic as in UAPI header
there are two fields:
struct snd_soc_tplg_enum_control {
(...)
char texts[SND_SOC_TPLG_NUM_TEXTS][SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
__le32 values[SND_SOC_TPLG_NUM_TEXTS * SNDRV_CTL_ELEM_ID_NAME_MAXLEN / 4];
the texts field is for names and the values one for values assigned to
those named fields, after analysis it becomes clear that there is quite
a lot overhead values than we may possibly name. So instead of changing
check to ARRAY_SIZE(ec->values), as it was first suggested, use
hardcoded value of SND_SOC_TPLG_NUM_TEXTS.
Link: https://lore.kernel.org/alsa-devel/X9B0eDcKy+9B6kZl@mwanda/
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20201210152541.191728-1-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c')
0 files changed, 0 insertions, 0 deletions