mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-11 07:24:46 +00:00
fs: ext4: correct error handling
After calling strdup() check the returned pointer.
Avoid a memory leak if the directory is not found.
Reported-by: Michael Nazzareno Trimarchi <michael@amarulasolutions.com>
Fixes: 22fdac381f
("fs: ext4: implement opendir, readdir, closedir")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
parent
bbc3d12516
commit
9084e1b1b9
1 changed files with 3 additions and 1 deletions
|
@ -213,7 +213,7 @@ int ext4fs_opendir(const char *dirname, struct fs_dir_stream **dirsp)
|
|||
if (!dirs)
|
||||
return -ENOMEM;
|
||||
dirs->dirname = strdup(dirname);
|
||||
if (!dirs) {
|
||||
if (!dirs->dirname) {
|
||||
free(dirs);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
@ -224,6 +224,8 @@ int ext4fs_opendir(const char *dirname, struct fs_dir_stream **dirsp)
|
|||
ret = 0;
|
||||
*dirsp = (struct fs_dir_stream *)dirs;
|
||||
} else {
|
||||
free(dirs->dirname);
|
||||
free(dirs);
|
||||
ret = -ENOENT;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue