Message ID | 20190627164308.21286-1-colin.king@canonical.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ALSA: usb-audio: fix sign unintended sign extension on left shifts | expand |
On Thu, 27 Jun 2019 18:43:08 +0200, Colin King wrote: > > From: Colin Ian King <colin.king@canonical.com> > > 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> Applied now. Thanks. Takashi
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c index 1f6011f36bb0..199fa157a411 100644 --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c @@ -741,7 +741,7 @@ static int snd_ni_control_init_val(struct usb_mixer_interface *mixer, return err; } - kctl->private_value |= (value << 24); + kctl->private_value |= ((unsigned int)value << 24); return 0; } @@ -902,7 +902,7 @@ static int snd_ftu_eff_switch_init(struct usb_mixer_interface *mixer, if (err < 0) return err; - kctl->private_value |= value[0] << 24; + kctl->private_value |= (unsigned int)value[0] << 24; return 0; }