]> www.infradead.org Git - users/jedix/linux-maple.git/commit
ALSA: timer: Fix double unlink of active_list
authorTakashi Iwai <tiwai@suse.de>
Wed, 13 Jan 2016 20:35:06 +0000 (21:35 +0100)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 26 May 2016 22:43:14 +0000 (15:43 -0700)
commit86230d1152c644e9a939b8730ac5137cd85c1d96
tree5433d9abd97e32e8a4c238885e45193e24e7b264
parent1563bd4b3ba9aae382abdf0ad0ac746d489ddc66
ALSA: timer: Fix double unlink of active_list

Orabug: 23330530

commit ee8413b01045c74340aa13ad5bdf905de32be736 upstream.

ALSA timer instance object has a couple of linked lists and they are
unlinked unconditionally at snd_timer_stop().  Meanwhile
snd_timer_interrupt() unlinks it, but it calls list_del() which leaves
the element list itself unchanged.  This ends up with unlinking twice,
and it was caught by syzkaller fuzzer.

The fix is to use list_del_init() variant properly there, too.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Tested-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit dc5697eb3297920e20b53fdf4c40891e1ed0eafd)

Signed-off-by: Dan Duval <dan.duval@oracle.com>
sound/core/timer.c