diff options
author | Xin LI <delphij@FreeBSD.org> | 2017-11-30 08:28:17 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2017-11-30 08:28:17 +0000 |
commit | aa031ef4a38afa97cbf8a03fb3b5cf97fe298e08 (patch) | |
tree | 167954d9847097eea21090c8fa1c60063039f4bc /sbin/fsck_msdosfs/dir.c | |
parent | 3eba519845f5fadb28ba7bee68a952990b83e9fe (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.c | 2 |
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; |