mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 21:56:06 +00:00
[CDFS]
- Simplify string handling, add a few asserts svn path=/trunk/; revision=66923
This commit is contained in:
parent
ddad8b0bd4
commit
3f7fa82ae7
2 changed files with 12 additions and 18 deletions
|
@ -564,16 +564,16 @@ CdfsDirFindFile(PDEVICE_EXTENSION DeviceExt,
|
|||
DPRINT ("Offset %lu\n", Offset);
|
||||
|
||||
RtlInitUnicodeString(&LongName, Name);
|
||||
ShortName.Length = 0;
|
||||
ShortName.MaximumLength = 26;
|
||||
ShortName.Buffer = ShortNameBuffer;
|
||||
memset(ShortNameBuffer, 0, 26);
|
||||
RtlInitEmptyUnicodeString(&ShortName, ShortNameBuffer, sizeof(ShortNameBuffer));
|
||||
RtlZeroMemory(ShortNameBuffer, sizeof(ShortNameBuffer));
|
||||
|
||||
OffsetOfEntry.QuadPart = StreamOffset.QuadPart + Offset;
|
||||
CdfsShortNameCacheGet(DirectoryFcb, &OffsetOfEntry, &LongName, &ShortName);
|
||||
|
||||
DPRINT("ShortName '%wZ'\n", &ShortName);
|
||||
|
||||
ASSERT(LongName.Length >= sizeof(WCHAR));
|
||||
ASSERT(ShortName.Length >= sizeof(WCHAR));
|
||||
if (FsRtlIsNameInExpression(&FileToFindUpcase, &LongName, TRUE, NULL) ||
|
||||
FsRtlIsNameInExpression(&FileToFindUpcase, &ShortName, TRUE, NULL))
|
||||
{
|
||||
|
|
|
@ -108,6 +108,7 @@ CdfsIsNameLegalDOS8Dot3(IN UNICODE_STRING FileName
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
ASSERT(FileName.Length >= sizeof(WCHAR));
|
||||
for (i = 0; i < FileName.Length / sizeof(WCHAR) ; i++)
|
||||
{
|
||||
/* Don't allow spaces in FileName */
|
||||
|
@ -122,11 +123,10 @@ CdfsIsNameLegalDOS8Dot3(IN UNICODE_STRING FileName
|
|||
}
|
||||
|
||||
/* Finally, convert the string to call the FsRtl function */
|
||||
DbcsName.MaximumLength = 12;
|
||||
DbcsName.Buffer = DbcsNameBuffer;
|
||||
RtlInitEmptyAnsiString(&DbcsName, DbcsNameBuffer, sizeof(DbcsNameBuffer));
|
||||
if (!NT_SUCCESS(RtlUnicodeStringToCountedOemString(&DbcsName,
|
||||
&FileName,
|
||||
FALSE )))
|
||||
FALSE)))
|
||||
{
|
||||
|
||||
return FALSE;
|
||||
|
@ -159,10 +159,7 @@ CdfsShortNameCacheGet
|
|||
if (ShortNameEntry->StreamOffset.QuadPart == StreamOffset->QuadPart)
|
||||
{
|
||||
/* Cache hit */
|
||||
RtlCopyMemory
|
||||
(ShortName->Buffer, ShortNameEntry->Name.Buffer,
|
||||
ShortNameEntry->Name.Length);
|
||||
ShortName->Length = ShortNameEntry->Name.Length;
|
||||
RtlCopyUnicodeString(ShortName, &ShortNameEntry->Name);
|
||||
ExReleaseResourceLite(&DirectoryFcb->NameListResource);
|
||||
DPRINT("Yield short name %wZ from cache\n", ShortName);
|
||||
return;
|
||||
|
@ -218,13 +215,10 @@ CdfsShortNameCacheGet
|
|||
}
|
||||
|
||||
ShortNameEntry->StreamOffset = *StreamOffset;
|
||||
ShortNameEntry->Name.Buffer = ShortNameEntry->NameBuffer;
|
||||
ShortNameEntry->Name.Length = ShortName->Length;
|
||||
ShortNameEntry->Name.MaximumLength = sizeof(ShortNameEntry->NameBuffer);
|
||||
RtlCopyMemory
|
||||
(ShortNameEntry->NameBuffer,
|
||||
ShortName->Buffer,
|
||||
ShortName->Length);
|
||||
RtlInitEmptyUnicodeString(&ShortNameEntry->Name,
|
||||
ShortNameEntry->NameBuffer,
|
||||
sizeof(ShortNameEntry->NameBuffer));
|
||||
RtlCopyUnicodeString(&ShortNameEntry->Name, ShortName);
|
||||
InsertTailList(&DirectoryFcb->ShortNameList, &ShortNameEntry->Entry);
|
||||
ExReleaseResourceLite(&DirectoryFcb->NameListResource);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue