mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
fs: fat: memory leak in fat_unlink()
Do not leak filename_copy in case of error. Catch out of memory when calling strdup. Reported-by: Coverity (CID: 184086) Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
parent
46580f2fd5
commit
0d532e911c
1 changed files with 7 additions and 1 deletions
|
@ -1259,6 +1259,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, "")) {
|
||||
|
@ -1270,7 +1275,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);
|
||||
|
|
Loading…
Reference in a new issue