ata: ahci: fix memory leak
authorChristian Gmeiner <christian.gmeiner@gmail.com>
Mon, 6 May 2019 13:18:54 +0000 (15:18 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 9 May 2019 23:52:55 +0000 (19:52 -0400)
malloc(..) and memalign(..) are both allocating memory and as a result
we leak the memory allocated with malloc(..).

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/ata/ahci.c

index 5fafb63aeb304b2f575d0feae4d3beb194454e43..188d8431975056b5c2e5680ad6557b2d91b4357f 100644 (file)
@@ -571,15 +571,12 @@ static int ahci_port_start(struct ahci_uc_priv *uc_priv, u8 port)
                return -1;
        }
 
-       mem = malloc(AHCI_PORT_PRIV_DMA_SZ + 2048);
+       mem = memalign(2048, AHCI_PORT_PRIV_DMA_SZ);
        if (!mem) {
                free(pp);
                printf("%s: No mem for table!\n", __func__);
                return -ENOMEM;
        }
-
-       /* Aligned to 2048-bytes */
-       mem = memalign(2048, AHCI_PORT_PRIV_DMA_SZ);
        memset(mem, 0, AHCI_PORT_PRIV_DMA_SZ);
 
        /*