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)
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>

No differences found