summaryrefslogtreecommitdiff
path: root/kernel/src/fs
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksav013@gmail.com>2022-12-04 20:12:57 +0100
committerAleksa Vuckovic <aleksav013@gmail.com>2022-12-04 20:12:57 +0100
commit57fc2b58f362a361188856ed73dbb7391df66938 (patch)
tree61d580e0bcb71e04754bc5d0f592339397ff20c3 /kernel/src/fs
parenta36b01e05f09f642f261d42666af28a367fefc4e (diff)
kheap_free bug fixed
Diffstat (limited to 'kernel/src/fs')
-rw-r--r--kernel/src/fs/ext2.c13
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, (&divided_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)