
6 Aug
2019
6 Aug
'19
9:40 a.m.
On Tue, 06 Aug 2019 08:13:06 +0200, Wenwen Wang wrote:
In add_new_ctl(), a mixer element structure is allocated through kzalloc() and the pointer is saved to 'elem'. Later on, a new alsa control element is created and added to this structure. In case the add process fails, i.e., the return value of snd_usb_mixer_add_control() is less than 0, the allocated structure is not freed, leading to a memory leak.
To fix the above issue, free 'elem' before returning the error.
Signed-off-by: Wenwen Wang wenwen@cs.uga.edu
It's a false-positive. snd_ctl_add() behaves differently from others, it releases the given kctl at the error. And in this case, elem already gets freed by kctl->private_free callback.
thanks,
Takashi