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)
committerTakashi Iwai <tiwai@suse.de>
Wed, 8 Sep 2010 08:45:34 +0000 (10:45 +0200)
commit27f7ad53829f79e799a253285318bff79ece15bd
tree5b1756cf310d944c5655e07398e77c408e7b4341
parente4ee8dd8afcbcbe502fa8a3d3af6eb09c96dd806
ALSA: seq/oss - Fix double-free at error path of snd_seq_oss_open()

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>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/seq/oss/seq_oss_init.c