mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
Fixed a bug in vfatGetNextDirEntry().
A valid file name was generated from a deleted LFN entry. An overrun occurred, when a directory has more then 19 deleted LFN entries. svn path=/trunk/; revision=2131
This commit is contained in:
parent
cad3eb8c42
commit
130bddfe9f
1 changed files with 8 additions and 7 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $Id: direntry.c,v 1.3 2001/07/28 07:05:56 hbirr Exp $
|
||||
/* $Id: direntry.c,v 1.4 2001/08/01 15:59:24 hbirr Exp $
|
||||
*
|
||||
*
|
||||
* FILE: DirEntry.c
|
||||
|
@ -125,7 +125,8 @@ vfatGetNextDirEntry (PDEVICE_EXTENSION pDeviceExt,
|
|||
cacheSegment);
|
||||
return STATUS_NO_MORE_ENTRIES;
|
||||
}
|
||||
else if (vfatIsDirEntryLongName (&fatDirEntry [indexInPage]))
|
||||
else if (vfatIsDirEntryLongName (&fatDirEntry [indexInPage])
|
||||
&& !vfatIsDirEntryDeleted (&fatDirEntry [indexInPage]))
|
||||
{
|
||||
DPRINT (" long name entry found at %d\n", *pDirectoryIndex);
|
||||
longNameEntry = (slot *) currentPage;
|
||||
|
@ -143,7 +144,7 @@ vfatGetNextDirEntry (PDEVICE_EXTENSION pDeviceExt,
|
|||
DPRINT (" longName: [%S]\n", pLongFileName);
|
||||
|
||||
cpos = 0;
|
||||
while ((longNameEntry [indexInPage].id != 0x41) &&
|
||||
while ((longNameEntry [indexInPage].id != 0x41) &&
|
||||
(longNameEntry [indexInPage].id != 0x01) &&
|
||||
(longNameEntry [indexInPage].attr > 0))
|
||||
{
|
||||
|
@ -161,8 +162,8 @@ vfatGetNextDirEntry (PDEVICE_EXTENSION pDeviceExt,
|
|||
{
|
||||
return status;
|
||||
}
|
||||
status = vfatRequestAndValidateRegion (pDeviceExt,
|
||||
pDirectoryFCB,
|
||||
status = vfatRequestAndValidateRegion (pDeviceExt,
|
||||
pDirectoryFCB,
|
||||
pageNumber * CACHEPAGESIZE(pDeviceExt),
|
||||
(PVOID *) ¤tPage,
|
||||
&cacheSegment,
|
||||
|
@ -203,8 +204,8 @@ vfatGetNextDirEntry (PDEVICE_EXTENSION pDeviceExt,
|
|||
{
|
||||
return status;
|
||||
}
|
||||
status = vfatRequestAndValidateRegion (pDeviceExt,
|
||||
pDirectoryFCB,
|
||||
status = vfatRequestAndValidateRegion (pDeviceExt,
|
||||
pDirectoryFCB,
|
||||
pageNumber * CACHEPAGESIZE(pDeviceExt),
|
||||
(PVOID *) ¤tPage,
|
||||
&cacheSegment,
|
||||
|
|
Loading…
Reference in a new issue