diff options
| author | Shengjiu Wang <shengjiu.wang@nxp.com> | 2026-04-01 12:42:24 +0300 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-04-01 20:24:28 +0300 |
| commit | 00541b86fb578d4949cfdd6aff1f82d43fcf07af (patch) | |
| tree | 1444d3bd29cdfe8e73861596b06a24c63351724c | |
| parent | 64a496ba976324615b845d60739dfcdae3d57434 (diff) | |
| download | linux-00541b86fb578d4949cfdd6aff1f82d43fcf07af.tar.xz | |
ASoC: fsl_easrc: Check the variable range in fsl_easrc_iec958_put_bits()
Add check of input value's range in fsl_easrc_iec958_put_bits(),
otherwise the wrong value may be written from user space.
Fixes: 955ac624058f ("ASoC: fsl_easrc: Add EASRC ASoC CPU DAI drivers")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://patch.msgid.link/20260401094226.2900532-10-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
| -rw-r--r-- | sound/soc/fsl/fsl_easrc.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/fsl/fsl_easrc.c b/sound/soc/fsl/fsl_easrc.c index 6c56134c60cc..6de1e1d3d8dc 100644 --- a/sound/soc/fsl/fsl_easrc.c +++ b/sound/soc/fsl/fsl_easrc.c @@ -54,6 +54,9 @@ static int fsl_easrc_iec958_put_bits(struct snd_kcontrol *kcontrol, unsigned int regval = ucontrol->value.integer.value[0]; int ret; + if (regval < EASRC_WIDTH_16_BIT || regval > EASRC_WIDTH_24_BIT) + return -EINVAL; + ret = (easrc_priv->bps_iec958[mc->regbase] != regval); easrc_priv->bps_iec958[mc->regbase] = regval; |
