Skip to content

Commit dafd6c4

Browse files
Colin Ian Kinghtejun
Colin Ian King
authored andcommitted
libata: ensure host is free'd on error exit paths
The host structure is not being kfree'd on two error exit paths leading to memory leaks. Add in new err_free label and kfree host. Detected by CoverityScan, CID#1466103 ("Resource leak") Fixes: 2623c7a ("libata: add refcounting to ata_host") Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Tejun Heo <tj@kernel.org>
1 parent f0f5671 commit dafd6c4

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

drivers/ata/libata-core.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -6087,7 +6087,7 @@ struct ata_host *ata_host_alloc(struct device *dev, int max_ports)
60876087
return NULL;
60886088

60896089
if (!devres_open_group(dev, NULL, GFP_KERNEL))
6090-
return NULL;
6090+
goto err_free;
60916091

60926092
dr = devres_alloc(ata_devres_release, 0, GFP_KERNEL);
60936093
if (!dr)
@@ -6119,6 +6119,8 @@ struct ata_host *ata_host_alloc(struct device *dev, int max_ports)
61196119

61206120
err_out:
61216121
devres_release_group(dev, NULL);
6122+
err_free:
6123+
kfree(host);
61226124
return NULL;
61236125
}
61246126

0 commit comments

Comments
 (0)