]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ALSA: seq/oss - Fix double-free at error path of snd_seq_oss_open()
authorTakashi Iwai <tiwai@suse.de>
Mon, 6 Sep 2010 07:13:45 +0000 (09:13 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 20 Sep 2010 20:17:50 +0000 (13:17 -0700)
commit2410490a1429ed3cff56d7fe9a6085d5d2f9eaec
treea7c9a1893eaa182593ce6bbb6f1e68685283c512
parent9dd88324a92d19152897e47f92fdf6b5cbbd2589
ALSA: seq/oss - Fix double-free at error path of snd_seq_oss_open()

commit 27f7ad53829f79e799a253285318bff79ece15bd upstream.

The error handling in snd_seq_oss_open() has several bad codes that
do dereferecing released pointers and double-free of kmalloc'ed data.
The object dp is release in free_devinfo() that is called via
private_free callback.  The rest shouldn't touch this object any more.

The patch changes delete_port() to call kfree() in any case, and gets
rid of unnecessary calls of destructors in snd_seq_oss_open().

Fixes CVE-2010-3080.

Reported-and-tested-by: Tavis Ormandy <taviso@cmpxchg8b.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
sound/core/seq/oss/seq_oss_init.c