aboutsummaryrefslogtreecommitdiff
path: root/sbin/fsck_msdosfs/dir.c
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2017-11-30 08:28:17 +0000
committerXin LI <delphij@FreeBSD.org>2017-11-30 08:28:17 +0000
commitaa031ef4a38afa97cbf8a03fb3b5cf97fe298e08 (patch)
tree167954d9847097eea21090c8fa1c60063039f4bc /sbin/fsck_msdosfs/dir.c
parent3eba519845f5fadb28ba7bee68a952990b83e9fe (diff)
Prevent OOB access on corrupted msdos directories.
Submitted by: Veo Zhang <veo live com> MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=326391
Diffstat (limited to 'sbin/fsck_msdosfs/dir.c')
-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 a57a39ef2018..38c70144d679 100644
--- a/sbin/fsck_msdosfs/dir.c
+++ b/sbin/fsck_msdosfs/dir.c
@@ -621,7 +621,7 @@ readDosDirSection(int f, struct bootblock *boot, struct fatEntry *fat,
dirent.name[8] = '\0';
for (k = 7; k >= 0 && dirent.name[k] == ' '; k--)
dirent.name[k] = '\0';
- if (dirent.name[k] != '\0')
+ if (k < 0 || dirent.name[k] != '\0')
k++;
if (dirent.name[0] == SLOT_E5)
dirent.name[0] = 0xe5;