mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 19:55:41 +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);
|
DPRINT ("Offset %lu\n", Offset);
|
||||||
|
|
||||||
RtlInitUnicodeString(&LongName, Name);
|
RtlInitUnicodeString(&LongName, Name);
|
||||||
ShortName.Length = 0;
|
RtlInitEmptyUnicodeString(&ShortName, ShortNameBuffer, sizeof(ShortNameBuffer));
|
||||||
ShortName.MaximumLength = 26;
|
RtlZeroMemory(ShortNameBuffer, sizeof(ShortNameBuffer));
|
||||||
ShortName.Buffer = ShortNameBuffer;
|
|
||||||
memset(ShortNameBuffer, 0, 26);
|
|
||||||
|
|
||||||
OffsetOfEntry.QuadPart = StreamOffset.QuadPart + Offset;
|
OffsetOfEntry.QuadPart = StreamOffset.QuadPart + Offset;
|
||||||
CdfsShortNameCacheGet(DirectoryFcb, &OffsetOfEntry, &LongName, &ShortName);
|
CdfsShortNameCacheGet(DirectoryFcb, &OffsetOfEntry, &LongName, &ShortName);
|
||||||
|
|
||||||
DPRINT("ShortName '%wZ'\n", &ShortName);
|
DPRINT("ShortName '%wZ'\n", &ShortName);
|
||||||
|
|
||||||
|
ASSERT(LongName.Length >= sizeof(WCHAR));
|
||||||
|
ASSERT(ShortName.Length >= sizeof(WCHAR));
|
||||||
if (FsRtlIsNameInExpression(&FileToFindUpcase, &LongName, TRUE, NULL) ||
|
if (FsRtlIsNameInExpression(&FileToFindUpcase, &LongName, TRUE, NULL) ||
|
||||||
FsRtlIsNameInExpression(&FileToFindUpcase, &ShortName, TRUE, NULL))
|
FsRtlIsNameInExpression(&FileToFindUpcase, &ShortName, TRUE, NULL))
|
||||||
{
|
{
|
||||||
|
|
|
@ -108,6 +108,7 @@ CdfsIsNameLegalDOS8Dot3(IN UNICODE_STRING FileName
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ASSERT(FileName.Length >= sizeof(WCHAR));
|
||||||
for (i = 0; i < FileName.Length / sizeof(WCHAR) ; i++)
|
for (i = 0; i < FileName.Length / sizeof(WCHAR) ; i++)
|
||||||
{
|
{
|
||||||
/* Don't allow spaces in FileName */
|
/* Don't allow spaces in FileName */
|
||||||
|
@ -122,11 +123,10 @@ CdfsIsNameLegalDOS8Dot3(IN UNICODE_STRING FileName
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Finally, convert the string to call the FsRtl function */
|
/* Finally, convert the string to call the FsRtl function */
|
||||||
DbcsName.MaximumLength = 12;
|
RtlInitEmptyAnsiString(&DbcsName, DbcsNameBuffer, sizeof(DbcsNameBuffer));
|
||||||
DbcsName.Buffer = DbcsNameBuffer;
|
|
||||||
if (!NT_SUCCESS(RtlUnicodeStringToCountedOemString(&DbcsName,
|
if (!NT_SUCCESS(RtlUnicodeStringToCountedOemString(&DbcsName,
|
||||||
&FileName,
|
&FileName,
|
||||||
FALSE )))
|
FALSE)))
|
||||||
{
|
{
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -159,10 +159,7 @@ CdfsShortNameCacheGet
|
||||||
if (ShortNameEntry->StreamOffset.QuadPart == StreamOffset->QuadPart)
|
if (ShortNameEntry->StreamOffset.QuadPart == StreamOffset->QuadPart)
|
||||||
{
|
{
|
||||||
/* Cache hit */
|
/* Cache hit */
|
||||||
RtlCopyMemory
|
RtlCopyUnicodeString(ShortName, &ShortNameEntry->Name);
|
||||||
(ShortName->Buffer, ShortNameEntry->Name.Buffer,
|
|
||||||
ShortNameEntry->Name.Length);
|
|
||||||
ShortName->Length = ShortNameEntry->Name.Length;
|
|
||||||
ExReleaseResourceLite(&DirectoryFcb->NameListResource);
|
ExReleaseResourceLite(&DirectoryFcb->NameListResource);
|
||||||
DPRINT("Yield short name %wZ from cache\n", ShortName);
|
DPRINT("Yield short name %wZ from cache\n", ShortName);
|
||||||
return;
|
return;
|
||||||
|
@ -218,13 +215,10 @@ CdfsShortNameCacheGet
|
||||||
}
|
}
|
||||||
|
|
||||||
ShortNameEntry->StreamOffset = *StreamOffset;
|
ShortNameEntry->StreamOffset = *StreamOffset;
|
||||||
ShortNameEntry->Name.Buffer = ShortNameEntry->NameBuffer;
|
RtlInitEmptyUnicodeString(&ShortNameEntry->Name,
|
||||||
ShortNameEntry->Name.Length = ShortName->Length;
|
ShortNameEntry->NameBuffer,
|
||||||
ShortNameEntry->Name.MaximumLength = sizeof(ShortNameEntry->NameBuffer);
|
sizeof(ShortNameEntry->NameBuffer));
|
||||||
RtlCopyMemory
|
RtlCopyUnicodeString(&ShortNameEntry->Name, ShortName);
|
||||||
(ShortNameEntry->NameBuffer,
|
|
||||||
ShortName->Buffer,
|
|
||||||
ShortName->Length);
|
|
||||||
InsertTailList(&DirectoryFcb->ShortNameList, &ShortNameEntry->Entry);
|
InsertTailList(&DirectoryFcb->ShortNameList, &ShortNameEntry->Entry);
|
||||||
ExReleaseResourceLite(&DirectoryFcb->NameListResource);
|
ExReleaseResourceLite(&DirectoryFcb->NameListResource);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue