ALSA: seq: Fix race at creating a queue
authorTakashi Iwai <tiwai@suse.de>
Wed, 8 Feb 2017 11:35:39 +0000 (12:35 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 8 Feb 2017 11:42:37 +0000 (12:42 +0100)
commit4842e98f26dd80be3623c4714a244ba52ea096a8
tree08e56d4db3d9f4d720fbaf3091d31ff219c5b58e
parentf3d83317a69e7d658e7c83e24f8b31ac533c39e3
ALSA: seq: Fix race at creating a queue

When a sequencer queue is created in snd_seq_queue_alloc(),it adds the
new queue element to the public list before referencing it.  Thus the
queue might be deleted before the call of snd_seq_queue_use(), and it
results in the use-after-free error, as spotted by syzkaller.

The fix is to reference the queue object at the right time.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/seq/seq_queue.c