summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorwdfk-prog <[email protected]>2025-10-29 13:10:41 +0800
committerRbb666 <[email protected]>2026-04-13 09:37:19 +0800
commitbd53bbaa7674e8cc0334290ff61cc743ab727202 (patch)
tree469b877154e70fc92c4f2e88e7eb8020d112115a /components
parent76c0f2d08d5dae08941f01affaf85e67b6ff5f16 (diff)
fix:[dfsv1][elm]Fixed a memory leak in dfs_elm_close
Diffstat (limited to 'components')
-rw-r--r--components/dfs/Kconfig22
-rw-r--r--components/dfs/dfs_v1/filesystems/elmfat/dfs_elm.c6
2 files changed, 23 insertions, 5 deletions
diff --git a/components/dfs/Kconfig b/components/dfs/Kconfig
index 5fed4359e2..4d1418b808 100644
--- a/components/dfs/Kconfig
+++ b/components/dfs/Kconfig
@@ -152,9 +152,29 @@ endif
depends on RT_DFS_ELM_REENTRANT
config RT_DFS_ELM_USE_EXFAT
- bool "Enable RT_DFS_ELM_USE_EXFAT"
+ bool "Enable exFAT filesystem support"
default n
depends on RT_DFS_ELM_USE_LFN >= 1
+ help
+ exFAT (Extended File Allocation Table) is a file system
+ designed for large-capacity storage devices.
+
+ Key features and recommendations:
+ - Target scenarios: Primarily used for storage media requiring
+ support for very large files (>4GB) or large partitions
+ (>32GB), such as high-capacity SD cards or USB drives.
+
+ - Resource cost: Enabling exFAT support will significantly
+ increase the code size (ROM footprint) of the file system.
+
+ - Recommendation:
+ For small-capacity storage devices (e.g., SPI Flash or
+ eMMC under 32GB), the standard FAT16 or FAT32 file
+ systems are perfectly adequate. It is strongly recommended
+ to keep this option disabled unless you absolutely need to
+ handle large-capacity storage, in order to conserve
+ valuable code space.
+
endmenu
endif
diff --git a/components/dfs/dfs_v1/filesystems/elmfat/dfs_elm.c b/components/dfs/dfs_v1/filesystems/elmfat/dfs_elm.c
index 43c72c6675..8b25005423 100644
--- a/components/dfs/dfs_v1/filesystems/elmfat/dfs_elm.c
+++ b/components/dfs/dfs_v1/filesystems/elmfat/dfs_elm.c
@@ -15,6 +15,7 @@
* 2017-02-13 Hichard Update Fatfs version to 0.12b, support exFAT.
* 2017-04-11 Bernard fix the st_blksize issue.
* 2017-05-26 Urey fix f_mount error when mount more fats
+ * 2025-10-29 wdfk-prog Fixed a memory leak in dfs_elm_close
*/
#include <rtthread.h>
@@ -468,10 +469,7 @@ int dfs_elm_close(struct dfs_file *file)
FRESULT result;
RT_ASSERT(file->vnode->ref_count > 0);
- if (file->vnode->ref_count > 1)
- {
- return 0;
- }
+ RT_ASSERT(file->data != RT_NULL);
result = FR_OK;
if (file->vnode->type == FT_DIRECTORY)
{