| From b1fbebd4164b3d170ad916dcd692cf843c9c065d Mon Sep 17 00:00:00 2001 |
| From: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| Date: Mon, 17 Sep 2018 17:25:24 +0900 |
| Subject: ALSA: bebob: fix memory leak for M-Audio FW1814 and ProjectMix I/O at error path |
| |
| From: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| |
| commit b1fbebd4164b3d170ad916dcd692cf843c9c065d upstream. |
| |
| After allocating model-dependent data for M-Audio FW1814 and ProjectMix |
| I/O, ALSA bebob driver has memory leak at error path. |
| |
| This commit releases the allocated data at the error path. |
| |
| Fixes: 04a2c73c97eb('ALSA: bebob: delayed registration of sound card') |
| Cc: <stable@vger.kernel.org> # v4.7+ |
| Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/firewire/bebob/bebob.c | 2 ++ |
| sound/firewire/bebob/bebob_maudio.c | 4 ---- |
| 2 files changed, 2 insertions(+), 4 deletions(-) |
| |
| --- a/sound/firewire/bebob/bebob.c |
| +++ b/sound/firewire/bebob/bebob.c |
| @@ -263,6 +263,8 @@ do_registration(struct work_struct *work |
| error: |
| mutex_unlock(&devices_mutex); |
| snd_bebob_stream_destroy_duplex(bebob); |
| + kfree(bebob->maudio_special_quirk); |
| + bebob->maudio_special_quirk = NULL; |
| snd_card_free(bebob->card); |
| dev_info(&bebob->unit->device, |
| "Sound card registration failed: %d\n", err); |
| --- a/sound/firewire/bebob/bebob_maudio.c |
| +++ b/sound/firewire/bebob/bebob_maudio.c |
| @@ -290,10 +290,6 @@ snd_bebob_maudio_special_discover(struct |
| bebob->midi_output_ports = 2; |
| } |
| end: |
| - if (err < 0) { |
| - kfree(params); |
| - bebob->maudio_special_quirk = NULL; |
| - } |
| mutex_unlock(&bebob->mutex); |
| return err; |
| } |