[PATCH] ALSA: hwdep: fix a left shifting 1 by 31 UB bug
Takashi Iwai
tiwai at suse.de
Tue May 26 08:22:04 CEST 2020
On Tue, 26 May 2020 02:39:21 +0200,
Changming Liu wrote:
>
> The "info.index" variable can be 31 in "1 << info.index".
> This might trigger an undefined behavior since 1 is signed.
>
> Fix this by casting 1 to 1u just to be sure "1u << 31" is defined.
>
> Signed-off-by: Changming Liu <liu.changm at northeastern.edu>
Thanks for the patch.
Unfortunately it seems that your MUA modified in quoted-printable and
inapplicable with git-am as is. Since the changes are so small, I
manually applied it now.
Please fix the setup of your MUA at the next time, or better to try
git-send-email to submit directly.
thanks,
Takashi
> ---
> sound/core/hwdep.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sound/core/hwdep.c b/sound/core/hwdep.c
> index b412d3b3d5ff..21edb8ac95eb 100644
> --- a/sound/core/hwdep.c
> +++ b/sound/core/hwdep.c
> @@ -216,12 +216,12 @@ static int snd_hwdep_dsp_load(struct snd_hwdep *hw,
> if (info.index >= 32)
> return -EINVAL;
> /* check whether the dsp was already loaded */
> - if (hw->dsp_loaded & (1 << info.index))
> + if (hw->dsp_loaded & (1u << info.index))
> return -EBUSY;
> err = hw->ops.dsp_load(hw, &info);
> if (err < 0)
> return err;
> - hw->dsp_loaded |= (1 << info.index);
> + hw->dsp_loaded |= (1u << info.index);
> return 0;
> }
>
> --
> 2.17.1
>
More information about the Alsa-devel
mailing list