ALSA: hiface: fix multiple memory leak bugs
authorWenwen Wang <wenwen@cs.uga.edu>
Wed, 7 Aug 2019 09:08:51 +0000 (04:08 -0500)
committerTakashi Iwai <tiwai@suse.de>
Wed, 7 Aug 2019 10:20:00 +0000 (12:20 +0200)
commit3d92aa45fbfd7319e3a19f4ec59fd32b3862b723
treea185bad2ee4923bb7ec865bd78d4fa032ade10f3
parentc1c6c877b0c79fd7e05c931435aa42211eaeebaf
ALSA: hiface: fix multiple memory leak bugs

In hiface_pcm_init(), 'rt' is firstly allocated through kzalloc(). Later
on, hiface_pcm_init_urb() is invoked to initialize 'rt->out_urbs[i]'. In
hiface_pcm_init_urb(), 'rt->out_urbs[i].buffer' is allocated through
kzalloc().  However, if hiface_pcm_init_urb() fails, both 'rt' and
'rt->out_urbs[i].buffer' are not deallocated, leading to memory leak bugs.
Also, 'rt->out_urbs[i].buffer' is not deallocated if snd_pcm_new() fails.

To fix the above issues, free 'rt' and 'rt->out_urbs[i].buffer'.

Fixes: a91c3fb2f842 ("Add M2Tech hiFace USB-SPDIF driver")
Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/hiface/pcm.c