diff options
| author | goldengrandpa <[email protected]> | 2023-04-26 08:47:21 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-04-26 08:47:21 +0800 |
| commit | efbdeb25ee7f10f47f7dfcac62b5a5c6a544aecc (patch) | |
| tree | 580767e3810c247e89fe31894132c21e2848cde9 /components | |
| parent | 62dcc5053089070a5e632b353b26e06b7f50470b (diff) | |
[dfs]释放fd_slot之前将子节点释放避免内存泄漏 (#7378)
Diffstat (limited to 'components')
| -rw-r--r-- | components/dfs/dfs_v1/src/dfs.c | 5 | ||||
| -rw-r--r-- | components/dfs/dfs_v2/src/dfs.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/components/dfs/dfs_v1/src/dfs.c b/components/dfs/dfs_v1/src/dfs.c index ecab062d7a..5487b1c012 100644 --- a/components/dfs/dfs_v1/src/dfs.c +++ b/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); } diff --git a/components/dfs/dfs_v2/src/dfs.c b/components/dfs/dfs_v2/src/dfs.c index ecab062d7a..5487b1c012 100644 --- a/components/dfs/dfs_v2/src/dfs.c +++ b/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); } |
