From: Bharat Kumar Reddy Gooty Date: Tue, 31 Mar 2020 05:34:03 +0000 (+0530) Subject: drivers: mmc: iproc_sdhci: fix possible memory leak X-Git-Tag: v2020.07-rc1~22^2~12 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=d5b8500f033fd14c3ab6e66417ce8c819f7889db;p=oweals%2Fu-boot.git drivers: mmc: iproc_sdhci: fix possible memory leak Free the pointer variable 'iproc_sdhci' upon failure to fix possible memory leak. Signed-off-by: Bharat Kumar Reddy Gooty Signed-off-by: Rayagonda Kokatanur --- diff --git a/drivers/mmc/iproc_sdhci.c b/drivers/mmc/iproc_sdhci.c index 831dd32eb7..36ecdba5c6 100644 --- a/drivers/mmc/iproc_sdhci.c +++ b/drivers/mmc/iproc_sdhci.c @@ -176,8 +176,7 @@ static int iproc_sdhci_probe(struct udevice *dev) u32 f_min_max[2]; int ret; - iproc_host = (struct sdhci_iproc_host *) - malloc(sizeof(struct sdhci_iproc_host)); + iproc_host = malloc(sizeof(struct sdhci_iproc_host)); if (!iproc_host) { printf("%s: sdhci host malloc fail!\n", __func__); return -ENOMEM; @@ -198,6 +197,7 @@ static int iproc_sdhci_probe(struct udevice *dev) "clock-freq-min-max", f_min_max, 2); if (ret) { printf("sdhci: clock-freq-min-max not found\n"); + free(iproc_host); return ret; } host->max_clk = f_min_max[1]; @@ -212,8 +212,10 @@ static int iproc_sdhci_probe(struct udevice *dev) ret = sdhci_setup_cfg(&plat->cfg, &iproc_host->host, f_min_max[1], f_min_max[0]); - if (ret) + if (ret) { + free(iproc_host); return ret; + } iproc_host->host.mmc = &plat->mmc; iproc_host->host.mmc->dev = dev;