From: Takashi Sakamoto Date: Fri, 12 Oct 2018 05:25:22 +0000 (+0900) Subject: ALSA: isight: fix leak of reference to firewire unit in error path of .probe callback X-Git-Tag: for-linus-20181026~18^2~13 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=51e68fb0929c29e47e9074ca3e99ffd6021a1c5a;p=linux-block.git ALSA: isight: fix leak of reference to firewire unit in error path of .probe callback In some error paths, reference count of firewire unit is not decreased. This commit fixes the bug. Fixes: 5b14ec25a79b('ALSA: firewire: release reference count of firewire unit in .remove callback of bus driver') Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai --- diff --git a/sound/firewire/isight.c b/sound/firewire/isight.c index de4decfb74d5..9ebe510ea26b 100644 --- a/sound/firewire/isight.c +++ b/sound/firewire/isight.c @@ -638,7 +638,7 @@ static int isight_probe(struct fw_unit *unit, if (!isight->audio_base) { dev_err(&unit->device, "audio unit base not found\n"); err = -ENXIO; - goto err_unit; + goto error; } fw_iso_resources_init(&isight->resources, unit); @@ -667,12 +667,12 @@ static int isight_probe(struct fw_unit *unit, dev_set_drvdata(&unit->device, isight); return 0; - -err_unit: - fw_unit_put(isight->unit); - mutex_destroy(&isight->mutex); error: snd_card_free(card); + + mutex_destroy(&isight->mutex); + fw_unit_put(isight->unit); + return err; }