mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
ALSA: seq: Fix race at timer setup and close
ALSA sequencer code has an open race between the timer setup ioctl and the close of the client. This was triggered by syzkaller fuzzer, and a use-after-free was caught there as a result. This patch papers over it by adding a proper queue->timer_mutex lock around the timer-related calls in the relevant code path. Reported-by: Dmitry Vyukov <[email protected]> Tested-by: Dmitry Vyukov <[email protected]> Cc: <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
This commit is contained in:
parent
030e2c78d3
commit
3567eb6af6
1 changed files with 2 additions and 0 deletions
|
|
@ -142,8 +142,10 @@ static struct snd_seq_queue *queue_new(int owner, int locked)
|
|||
static void queue_delete(struct snd_seq_queue *q)
|
||||
{
|
||||
/* stop and release the timer */
|
||||
mutex_lock(&q->timer_mutex);
|
||||
snd_seq_timer_stop(q->timer);
|
||||
snd_seq_timer_close(q);
|
||||
mutex_unlock(&q->timer_mutex);
|
||||
/* wait until access free */
|
||||
snd_use_lock_sync(&q->use_lock);
|
||||
/* release resources... */
|
||||
|
|
|
|||
Loading…
Reference in a new issue