mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-04 16:15:11 +00:00
sound: fix a memory leak bug
commit c7cd7c748a
upstream.
In sound_insert_unit(), the controlling structure 's' is allocated through
kmalloc(). Then it is added to the sound driver list by invoking
__sound_insert_unit(). Later on, if __register_chrdev() fails, 's' is
removed from the list through __sound_remove_unit(). If 'index' is not less
than 0, -EBUSY is returned to indicate the error. However, 's' is not
deallocated on this execution path, leading to a memory leak bug.
To fix the above issue, free 's' before -EBUSY is returned.
Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d397091dba
commit
9575ba61ba
1 changed files with 2 additions and 1 deletions
|
@ -280,7 +280,8 @@ static int sound_insert_unit(struct sound_unit **list, const struct file_operati
|
|||
goto retry;
|
||||
}
|
||||
spin_unlock(&sound_loader_lock);
|
||||
return -EBUSY;
|
||||
r = -EBUSY;
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue