aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYangWen <anmuxixixi@gmail.com>2025-05-07 15:39:30 +0000
committerWarner Losh <imp@FreeBSD.org>2026-03-07 07:51:16 +0000
commitcb69951f7ee68c51ce465dba9b0d2f661c567c4b (patch)
treed50ae5854792fd25eaf4d74b1b60aa481c2050a1
parent3570b19d74ed94dcc7fac2dcbf42b378bc72362e (diff)
fsck_msdosfs: reduce the scope of dentry deletion
When dentry flag is ATTR_VOLUME because of 1 bit flip(from 0x10 to 0x18), removede function will delete all dentry from invalid dentry postion, so some normal dentries will be deleted in the same cluster.Unfortunately, these normal directories and files will not be visible to the user after wo do fsck_msdos Signed-off-by: YangWen <anmuxixixi@gmail.com> Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1694
-rw-r--r--sbin/fsck_msdosfs/dir.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sbin/fsck_msdosfs/dir.c b/sbin/fsck_msdosfs/dir.c
index 2d7e4bcdc38f..de3d950c9611 100644
--- a/sbin/fsck_msdosfs/dir.c
+++ b/sbin/fsck_msdosfs/dir.c
@@ -769,7 +769,7 @@ readDosDirSection(struct fat_descriptor *fat, struct dosDirEntry *dir)
if (vallfn || invlfn) {
mod |= removede(fat,
invlfn ? invlfn : vallfn, p,
- invlfn ? invcl : valcl, -1, 0,
+ invlfn ? invcl : valcl, cl, cl,
fullpath(dir), 2);
vallfn = NULL;
invlfn = NULL;