Skip to content

Commit 08f4f8b

Browse files
takaswiegregkh
authored andcommitted
ALSA: oxfw: fix memory leak of discovered stream formats at error path
commit 1064bc6 upstream. After finishing discover of stream formats, ALSA OXFW driver has memory leak of allocated memory object at error path. This commit releases the memory object at the error path. Fixes: 6c29230 ('ALSA: oxfw: 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>
1 parent 996899a commit 08f4f8b

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

sound/firewire/oxfw/oxfw.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ static int detect_quirks(struct snd_oxfw *oxfw)
213213
static void do_registration(struct work_struct *work)
214214
{
215215
struct snd_oxfw *oxfw = container_of(work, struct snd_oxfw, dwork.work);
216+
int i;
216217
int err;
217218

218219
if (oxfw->registered)
@@ -275,6 +276,12 @@ static void do_registration(struct work_struct *work)
275276
snd_oxfw_stream_destroy_simplex(oxfw, &oxfw->rx_stream);
276277
if (oxfw->has_output)
277278
snd_oxfw_stream_destroy_simplex(oxfw, &oxfw->tx_stream);
279+
for (i = 0; i < SND_OXFW_STREAM_FORMAT_ENTRIES; ++i) {
280+
kfree(oxfw->tx_stream_formats[i]);
281+
oxfw->tx_stream_formats[i] = NULL;
282+
kfree(oxfw->rx_stream_formats[i]);
283+
oxfw->rx_stream_formats[i] = NULL;
284+
}
278285
snd_card_free(oxfw->card);
279286
kfree(oxfw->spec);
280287
oxfw->spec = NULL;

0 commit comments

Comments
 (0)