diff options
| author | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-12-04 20:12:57 +0100 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-12-04 20:12:57 +0100 |
| commit | 57fc2b58f362a361188856ed73dbb7391df66938 (patch) | |
| tree | 61d580e0bcb71e04754bc5d0f592339397ff20c3 /kernel/src/fs/ext2.c | |
| parent | a36b01e05f09f642f261d42666af28a367fefc4e (diff) | |
kheap_free bug fixed
Diffstat (limited to 'kernel/src/fs/ext2.c')
| -rw-r--r-- | kernel/src/fs/ext2.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/src/fs/ext2.c b/kernel/src/fs/ext2.c index 2f003ef..751cf64 100644 --- a/kernel/src/fs/ext2.c +++ b/kernel/src/fs/ext2.c @@ -225,6 +225,13 @@ uint32_t path_to_inode(const char* path) curr_path = list_prev_entry(curr_path, list); } + path_t* pos; + list_for_each_entry_del(pos, (÷d_path->list), list) { + kfree(pos->name); + kfree(pos); + } + kfree(divided_path); + return inode; } @@ -240,6 +247,12 @@ void ls(uint32_t inode) list_for_each_entry(pos, (&dir->list), list) { printf("inode: %d, name: %s\n", pos->ext2_dentry.inode, pos->ext2_dentry.name); } + + list_for_each_entry_del(pos, (&dir->list), list) { + kfree(pos->ext2_dentry.name); + kfree(pos); + } + kfree(dir); } void print(uint32_t inode) |
