
On 11/3/24 00:36, Michael Nazzareno Trimarchi wrote:
Hi Tom
On Sun, Nov 3, 2024 at 12:26 AM Tom Rini trini@konsulko.com wrote:
On Sat, 26 Oct 2024 08:40:43 +0200, Heinrich Schuchardt wrote:
With this series opendir, readdir, closedir are implemented for ext4. These functions are needed for the UEFI sub-system to interact with the ext4 file system.
To reduce code growth the functions are reused to implement the ls command for ext4.
[...]
Applied to local tree/v2-tidy-test-dir, thanks!
Am I sleeping?
int ext4fs_opendir(const char *dirname, struct fs_dir_stream **dirsp) { struct ext4_dir_stream *dirs = NULL;
Thank you for your review.
We should not set a value that we do not use.
struct ext2fs_node *dir = NULL; int ret; *dirsp = NULL; dirs = calloc(1, sizeof(struct ext4_dir_stream)); if (!dirs) return -ENOMEM; dirs->dirname = strdup(dirname); if (!dirs->dirname) {
Yes this line in my code is incorrect.
free(dirs); return -ENOMEM; } ret = ext4fs_find_file(dirname, &ext4fs_root->diropen, &dir,
FILETYPE_DIRECTORY);
if (ret == 1) { ret = 0; *dirsp = (struct fs_dir_stream *)dirs; } else { ret = -ENOENT; free(dirs->dirname); free(dirs);
Yes, we should avoid a memory leak here.
I will send a patch.
Best regards
Heinrich
} if (dir) ext4fs_free_node(dir, &ext4fs_root->diropen); return ret;
}
Should not be like this?
-- Tom