[PATCH 0/5] fs: ext4: implement opendir, readdir, closedir
Heinrich Schuchardt
xypron.glpk at gmx.de
Thu Nov 7 10:27:35 CET 2024
On 11/3/24 00:36, Michael Nazzareno Trimarchi wrote:
> Hi Tom
>
> On Sun, Nov 3, 2024 at 12:26 AM Tom Rini <trini at 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
>>
>>
>
>
More information about the U-Boot
mailing list