git: 3ed143596029 - stable/13 - fsck_msdosfs: do not call checksize() if the cluster is bad

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Sat, 27 Jan 2024 09:13:02 UTC
The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=3ed143596029f4605354715c150381f2bbbc795f

commit 3ed143596029f4605354715c150381f2bbbc795f
Author:     John F. Carr <jfc@mit.edu>
AuthorDate: 2024-01-20 23:18:18 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-01-27 09:12:26 +0000

    fsck_msdosfs: do not call checksize() if the cluster is bad
    
    PR:     276464
    
    (cherry picked from commit deeb1d34024b3f843d965cdf204c745165c9bac0)
---
 sbin/fsck_msdosfs/dir.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sbin/fsck_msdosfs/dir.c b/sbin/fsck_msdosfs/dir.c
index be3d5ddc5425..fbd1929f17f4 100644
--- a/sbin/fsck_msdosfs/dir.c
+++ b/sbin/fsck_msdosfs/dir.c
@@ -982,7 +982,7 @@ readDosDirSection(struct fat_descriptor *fat, struct dosDirEntry *dir)
 				n->next = pendingDirectories;
 				n->dir = d;
 				pendingDirectories = n;
-			} else {
+			} else if (!(mod & FSERROR)) {
 				mod |= k = checksize(fat, p, &dirent);
 				if (k & FSDIRMOD)
 					mod |= THISMOD;