git: 63a7e799b32c - stable/14 - fsck_msdosfs: do not call checksize() if the cluster is bad

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

URL: https://cgit.FreeBSD.org/src/commit/?id=63a7e799b32cd9a5dcc3158677330edf8ea313bb

commit 63a7e799b32cd9a5dcc3158677330edf8ea313bb
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:11:31 +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 c60eaab59b12..19516d882e2a 100644
--- a/sbin/fsck_msdosfs/dir.c
+++ b/sbin/fsck_msdosfs/dir.c
@@ -995,7 +995,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;