]> git.sur5r.net Git - u-boot/commitdiff
Fix memory leak in mmc_read()
authorWolfgang Denk <wd@denx.de>
Thu, 11 Mar 2010 22:35:43 +0000 (23:35 +0100)
committerWolfgang Denk <wd@denx.de>
Thu, 11 Mar 2010 22:35:43 +0000 (23:35 +0100)
There is be a path through mmc_read in drivers/mmc/mmc.c where
malloc'd memory is not freed before exiting mmc_read: it occurs if
mmc_set_blocklen() returns a non-zero value.

Reported-by: Quentin Armitage <Quentin@Armitage.org.uk>
Signed-off-by: Wolfgang Denk <wd@denx.de>
drivers/mmc/mmc.c

index 367922579cb1731c604ed65300e5d303e02beac2..cf4ea161b964ab36c8b4da95d9f3d209d9ca66be 100644 (file)
@@ -179,7 +179,7 @@ int mmc_read(struct mmc *mmc, u64 src, uchar *dst, int size)
        err = mmc_set_blocklen(mmc, mmc->read_bl_len);
 
        if (err)
-               return err;
+               goto free_buffer;
 
        for (i = startblock; i <= endblock; i++) {
                int segment_size;