From mboxrd@z Thu Jan 1 00:00:00 1970 From: AKASHI Takahiro Date: Tue, 2 Oct 2018 15:39:54 +0900 Subject: [U-Boot] [PATCH 1/1] fs: fat: memory leak in fat_unlink() In-Reply-To: <20181002045800.19361-1-xypron.glpk@gmx.de> References: <20181002045800.19361-1-xypron.glpk@gmx.de> Message-ID: <20181002063953.GF32578@linaro.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Tue, Oct 02, 2018 at 06:58:00AM +0200, Heinrich Schuchardt wrote: > Do not leak filename_copy in case of error. > Catch out of memory when calling strdup. > > This addresses Coverity Scan CID 184086. Thanks, -Takahiro Akashi > Reported-by: Tom Rini > Signed-off-by: Heinrich Schuchardt > --- > fs/fat/fat_write.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c > index 4286a0a847..b1ed0e6734 100644 > --- a/fs/fat/fat_write.c > +++ b/fs/fat/fat_write.c > @@ -1263,6 +1263,11 @@ int fat_unlink(const char *filename) > char *filename_copy, *dirname, *basename; > > filename_copy = strdup(filename); > + if (!filename_copy) { > + printf("Error: allocating memory\n"); > + ret = -ENOMEM; > + goto exit; > + } > split_filename(filename_copy, &dirname, &basename); > > if (!strcmp(dirname, "/") && !strcmp(basename, "")) { > @@ -1274,7 +1279,8 @@ int fat_unlink(const char *filename) > itr = malloc_cache_aligned(sizeof(fat_itr)); > if (!itr) { > printf("Error: allocating memory\n"); > - return -ENOMEM; > + ret = -ENOMEM; > + goto exit; > } > > ret = fat_itr_root(itr, &fsdata); > -- > 2.19.0 >