Fix the fix to RtlFindMessage

svn path=/trunk/; revision=19731
This commit is contained in:
Gé van Geldorp 2005-11-28 23:21:24 +00:00
parent b60174b09d
commit 678fb5ae5f
2 changed files with 8 additions and 5 deletions

View file

@ -383,7 +383,7 @@ DWORD WINAPI FormatMessageW(
LPWSTR from,f;
DWORD width = dwFlags & FORMAT_MESSAGE_MAX_WIDTH_MASK;
BOOL eos = FALSE;
CHAR ch;
WCHAR ch;
TRACE("(0x%lx,%p,%ld,0x%lx,%p,%ld,%p)\n",
dwFlags,lpSource,dwMessageId,dwLanguageId,lpBuffer,nSize,args);

View file

@ -85,17 +85,20 @@ RtlFindMessage(PVOID BaseAddress,
}
}
if (MessageTable->NumberOfBlocks <= i)
{
return STATUS_MESSAGE_NOT_FOUND;
}
MessageEntry = (PRTL_MESSAGE_RESOURCE_ENTRY)((PUCHAR)MessageTable + MessageTable->Blocks[i].OffsetToEntries);
DPRINT("EntryOffset 0x%08lx\n", EntryOffset);
DPRINT("IdOffset 0x%08lx\n", IdOffset);
DPRINT("MessageEntry: %p\n", MessageEntry);
for (i = 0; i < MessageTable->NumberOfBlocks; i++)
for (i = 0; i < IdOffset; i++)
{
if (MessageId >= MessageTable->Blocks[i].LowId && MessageId <= MessageTable->Blocks[i].HighId)
MessageEntry = (PRTL_MESSAGE_RESOURCE_ENTRY)((char *)MessageEntry + MessageEntry->Length);
MessageEntry = (PRTL_MESSAGE_RESOURCE_ENTRY)((PUCHAR)MessageEntry + (ULONG)MessageEntry->Length);
}
if (MessageEntry->Flags == 0)