Patch "ALSA: seq: fix undefined behavior in bit shift for SNDRV_SEQ_FILTER_USE_EVENT" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ALSA: seq: fix undefined behavior in bit shift for SNDRV_SEQ_FILTER_USE_EVENT

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     alsa-seq-fix-undefined-behavior-in-bit-shift-for-snd.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit c3c42b5b13cea427d5f250353ca3b113997e07c3
Author: Baisong Zhong <zhongbaisong@xxxxxxxxxx>
Date:   Mon Nov 21 19:16:30 2022 +0800

    ALSA: seq: fix undefined behavior in bit shift for SNDRV_SEQ_FILTER_USE_EVENT
    
    [ Upstream commit cf59e1e4c79bf741905484cdb13c130b53576a16 ]
    
    Shifting signed 32-bit value by 31 bits is undefined, so changing
    significant bit to unsigned. The UBSAN warning calltrace like below:
    
    UBSAN: shift-out-of-bounds in sound/core/seq/seq_clientmgr.c:509:22
    left shift of 1 by 31 places cannot be represented in type 'int'
    ...
    Call Trace:
     <TASK>
     dump_stack_lvl+0x8d/0xcf
     ubsan_epilogue+0xa/0x44
     __ubsan_handle_shift_out_of_bounds+0x1e7/0x208
     snd_seq_deliver_single_event.constprop.21+0x191/0x2f0
     snd_seq_deliver_event+0x1a2/0x350
     snd_seq_kernel_client_dispatch+0x8b/0xb0
     snd_seq_client_notify_subscription+0x72/0xa0
     snd_seq_ioctl_subscribe_port+0x128/0x160
     snd_seq_kernel_client_ctl+0xce/0xf0
     snd_seq_oss_create_client+0x109/0x15b
     alsa_seq_oss_init+0x11c/0x1aa
     do_one_initcall+0x80/0x440
     kernel_init_freeable+0x370/0x3c3
     kernel_init+0x1b/0x190
     ret_from_fork+0x1f/0x30
     </TASK>
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Baisong Zhong <zhongbaisong@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20221121111630.3119259-1-zhongbaisong@xxxxxxxxxx
    Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/include/uapi/sound/asequencer.h b/include/uapi/sound/asequencer.h
index a75e14edc957..dbd60f48b4b0 100644
--- a/include/uapi/sound/asequencer.h
+++ b/include/uapi/sound/asequencer.h
@@ -344,10 +344,10 @@ typedef int __bitwise snd_seq_client_type_t;
 #define	KERNEL_CLIENT	((__force snd_seq_client_type_t) 2)
                         
 	/* event filter flags */
-#define SNDRV_SEQ_FILTER_BROADCAST	(1<<0)	/* accept broadcast messages */
-#define SNDRV_SEQ_FILTER_MULTICAST	(1<<1)	/* accept multicast messages */
-#define SNDRV_SEQ_FILTER_BOUNCE		(1<<2)	/* accept bounce event in error */
-#define SNDRV_SEQ_FILTER_USE_EVENT	(1<<31)	/* use event filter */
+#define SNDRV_SEQ_FILTER_BROADCAST	(1U<<0)	/* accept broadcast messages */
+#define SNDRV_SEQ_FILTER_MULTICAST	(1U<<1)	/* accept multicast messages */
+#define SNDRV_SEQ_FILTER_BOUNCE		(1U<<2)	/* accept bounce event in error */
+#define SNDRV_SEQ_FILTER_USE_EVENT	(1U<<31)	/* use event filter */
 
 struct snd_seq_client_info {
 	int client;			/* client number to inquire */



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux