diff --git a/reactos/drivers/filesystems/cdfs/fcb.c b/reactos/drivers/filesystems/cdfs/fcb.c index 47d01b868cf..88fbadf01ee 100644 --- a/reactos/drivers/filesystems/cdfs/fcb.c +++ b/reactos/drivers/filesystems/cdfs/fcb.c @@ -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)) { diff --git a/reactos/drivers/filesystems/cdfs/misc.c b/reactos/drivers/filesystems/cdfs/misc.c index 58d3739f46c..712ed0a90fb 100644 --- a/reactos/drivers/filesystems/cdfs/misc.c +++ b/reactos/drivers/filesystems/cdfs/misc.c @@ -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);