瀏覽代碼

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

goldengrandpa 2 年之前
父節點
當前提交
efbdeb25ee
共有 2 個文件被更改,包括 10 次插入0 次删除
  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);
     }