[BLUE] Reformat and add missing success checks + DPRINTs on failure

This commit is contained in:
Timo Kreuzer 2018-07-01 10:24:22 +02:00
parent 64f46045af
commit 741c3c0022

View file

@ -33,8 +33,12 @@ ScrLoadFontTable(
NTSTATUS Status = STATUS_SUCCESS;
FontBitfield = (PUCHAR)ExAllocatePoolWithTag(NonPagedPool, 2048, TAG_BLUE);
if (FontBitfield)
if (FontBitfield == NULL)
{
DPRINT1("ExAllocatePoolWithTag failed\n");
return;
}
/* open bit plane for font table access */
OpenBitPlane();
@ -44,7 +48,13 @@ ScrLoadFontTable(
Status = ExtractFont(CodePage, FontBitfield);
if (NT_SUCCESS(Status))
{
LoadFont(Bitplane, FontBitfield);
}
else
{
DPRINT1("ExtractFont failed with Status 0x%lx\n", Status);
}
MmUnmapIoSpace(Bitplane, 0xFFFF);
ExFreePool(FontBitfield);
@ -52,7 +62,6 @@ ScrLoadFontTable(
/* close bit plane */
CloseBitPlane();
}
}
/* PRIVATE FUNCTIONS *********************************************************/
@ -93,7 +102,10 @@ ExtractFont(
&ObjectAttributes);
if (!NT_SUCCESS(Status))
return(Status);
{
DPRINT1("ZwOpenSymbolicLinkObject failed with Status 0x%lx\n", Status);
return Status;
}
SourceName.Length = 0;
SourceName.MaximumLength = MAX_PATH * sizeof(WCHAR);
@ -104,7 +116,19 @@ ExtractFont(
NULL);
ZwClose(Handle);
if (!NT_SUCCESS(Status))
{
DPRINT1("ZwQuerySymbolicLinkObject failed with Status 0x%lx\n", Status);
return Status;
}
Status = RtlAppendUnicodeToString(&SourceName, L"\\vgafonts.cab");
if (!NT_SUCCESS(Status))
{
DPRINT1("RtlAppendUnicodeToString failed with Status 0x%lx\n", Status);
return Status;
}
InitializeObjectAttributes(&ObjectAttributes,
&SourceName,
OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
@ -125,8 +149,12 @@ ExtractFont(
ByteOffset.LowPart = ByteOffset.HighPart = 0;
if (NT_SUCCESS(Status))
if (!NT_SUCCESS(Status))
{
DPRINT1("Error: Cannot open vgafonts.cab (0x%lx)\n", Status);
return Status;
}
Status = ZwReadFile(Handle,
NULL,
NULL,
@ -137,10 +165,19 @@ ExtractFont(
&ByteOffset,
NULL);
if (NT_SUCCESS(Status))
if (!NT_SUCCESS(Status))
{
if (CabFileHeader.Signature == CAB_SIGNATURE)
DPRINT1("Error: Cannot read from file (0x%lx)\n", Status);
goto Exit;
}
if (CabFileHeader.Signature != CAB_SIGNATURE)
{
DPRINT1("Error: CAB signature is missing!\n");
Status = STATUS_UNSUCCESSFUL;
goto Exit;
}
// We have a valid CAB file!
// Read the file table now and decrement the file count on every file. When it's zero, we read the complete table.
ByteOffset.LowPart = CabFileHeader.FileTableOffset;
@ -208,27 +245,16 @@ ExtractFont(
2048,
&ByteOffset,
NULL);
ZwClose(Handle);
return STATUS_SUCCESS;
}
else
if (!NT_SUCCESS(Status))
{
DPRINT1("Error: CAB signature is missing!\n");
Status = STATUS_UNSUCCESSFUL;
DPRINT1("ZwReadFile failed with Status 0x%lx\n", Status);
}
}
else
DPRINT1("Error: Cannot read from file\n");
Exit:
ZwClose(Handle);
return Status;
}
else
{
DPRINT1("Error: Cannot open vgafonts.cab\n");
return Status;
}
}
/* Font-load specific funcs */
VOID