lkml.org 
[lkml]   [2022]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 057/124] ALSA: usb-audio: Fix undefined behavior due to shift overflowing the constant
    Date
    From: Borislav Petkov <bp@suse.de>

    [ Upstream commit 1ef8715975de8bd481abbd0839ed4f49d9e5b0ff ]

    Fix:

    sound/usb/midi.c: In function ‘snd_usbmidi_out_endpoint_create’:
    sound/usb/midi.c:1389:2: error: case label does not reduce to an integer constant
    case USB_ID(0xfc08, 0x0101): /* Unknown vendor Cable */
    ^~~~

    See https://lore.kernel.org/r/YkwQ6%2BtIH8GQpuct@zn.tnic for the gory
    details as to why it triggers with older gccs only.

    [ A slight correction with parentheses around the argument by tiwai ]

    Signed-off-by: Borislav Petkov <bp@suse.de>
    Link: https://lore.kernel.org/r/20220405151517.29753-3-bp@alien8.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/usb/usbaudio.h | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h
    index 167834133b9b..b8359a0aa008 100644
    --- a/sound/usb/usbaudio.h
    +++ b/sound/usb/usbaudio.h
    @@ -8,7 +8,7 @@
    */

    /* handling of USB vendor/product ID pairs as 32-bit numbers */
    -#define USB_ID(vendor, product) (((vendor) << 16) | (product))
    +#define USB_ID(vendor, product) (((unsigned int)(vendor) << 16) | (product))
    #define USB_ID_VENDOR(id) ((id) >> 16)
    #define USB_ID_PRODUCT(id) ((u16)(id))

    --
    2.35.1


    \
     
     \ /
      Last update: 2022-04-26 11:09    [W:4.123 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site