[ros-diffs] [gvg] 19731: Fix the fix to RtlFindMessage
gvg at svn.reactos.com
gvg at svn.reactos.com
Tue Nov 29 00:21:31 CET 2005
Fix the fix to RtlFindMessage
Modified: trunk/reactos/lib/kernel32/misc/errormsg.c
Modified: trunk/reactos/lib/rtl/message.c
_____
Modified: trunk/reactos/lib/kernel32/misc/errormsg.c
--- trunk/reactos/lib/kernel32/misc/errormsg.c 2005-11-28 22:25:11 UTC
(rev 19730)
+++ trunk/reactos/lib/kernel32/misc/errormsg.c 2005-11-28 23:21:24 UTC
(rev 19731)
@@ -383,7 +383,7 @@
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);
_____
Modified: trunk/reactos/lib/rtl/message.c
--- trunk/reactos/lib/rtl/message.c 2005-11-28 22:25:11 UTC (rev
19730)
+++ trunk/reactos/lib/rtl/message.c 2005-11-28 23:21:24 UTC (rev
19731)
@@ -85,17 +85,20 @@
}
}
+ 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)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20051129/77bf019c/attachment.html
More information about the Ros-diffs
mailing list