Browse Source

[dfs]释放fd_slot之前将子节点释放避免内存泄漏 (#7378)

goldengrandpa 2 years ago
parent
commit
efbdeb25ee
2 changed files with 10 additions and 0 deletions
  1. 5 0
      components/dfs/dfs_v1/src/dfs.c
  2. 5 0
      components/dfs/dfs_v2/src/dfs.c

+ 5 - 0
components/dfs/dfs_v1/src/dfs.c

@@ -359,6 +359,11 @@ void fdt_fd_release(struct dfs_fdtable* fdt, int fd)
         if (vnode)
         {
             vnode->ref_count--;
+            if(vnode->ref_count == 0)
+            {
+                rt_free(vnode);
+                fd_slot->vnode = RT_NULL;
+            }
         }
         rt_free(fd_slot);
     }

+ 5 - 0
components/dfs/dfs_v2/src/dfs.c

@@ -359,6 +359,11 @@ void fdt_fd_release(struct dfs_fdtable* fdt, int fd)
         if (vnode)
         {
             vnode->ref_count--;
+            if(vnode->ref_count == 0)
+            {
+                rt_free(vnode);
+                fd_slot->vnode = RT_NULL;
+            }
         }
         rt_free(fd_slot);
     }