lkml.org 
[lkml]   [2019]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 66/73] ALSA: usb-audio: fix sign unintended sign extension on left shifts
    Date
    From: Colin Ian King <colin.king@canonical.com>

    commit 2acf5a3e6e9371e63c9e4ff54d84d08f630467a0 upstream.

    There are a couple of left shifts of unsigned 8 bit values that
    first get promoted to signed ints and hence get sign extended
    on the shift if the top bit of the 8 bit values are set. Fix
    this by casting the 8 bit values to unsigned ints to stop the
    unintentional sign extension.

    Addresses-Coverity: ("Unintended sign extension")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    sound/usb/mixer_quirks.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/sound/usb/mixer_quirks.c
    +++ b/sound/usb/mixer_quirks.c
    @@ -753,7 +753,7 @@ static int snd_ni_control_init_val(struc
    return err;
    }

    - kctl->private_value |= (value << 24);
    + kctl->private_value |= ((unsigned int)value << 24);
    return 0;
    }

    @@ -914,7 +914,7 @@ static int snd_ftu_eff_switch_init(struc
    if (err < 0)
    return err;

    - kctl->private_value |= value[0] << 24;
    + kctl->private_value |= (unsigned int)value[0] << 24;
    return 0;
    }


    \
     
     \ /
      Last update: 2019-07-08 17:18    [W:4.095 / U:0.204 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site