- Fix dereferencing potential NULL pointers in ConDrvReadConsole() and ConDrvChangeScreenBufferAttributes();
- Fix a wcsncat in ConSrvOpenUserSettings()
Patches by Victor Martinez Calvo
CORE-8122 CORE-8123 #resolve #comment Fixed in revision 63035, cheers ;)
svn path=/trunk/; revision=63035
NTSTATUS Status = STATUS_PENDING;
PLIST_ENTRY CurrentEntry;
ConsoleInput *Input;
- ULONG i = ReadControl->nInitialChars;
+ ULONG i;
if (Console == NULL || InputBuffer == NULL || /* Buffer == NULL || */
ReadControl == NULL || ReadControl->nLength != sizeof(CONSOLE_READCONSOLE_CONTROL))
/* We haven't read anything (yet) */
+ i = ReadControl->nInitialChars;
+
if (InputBuffer->Mode & ENABLE_LINE_INPUT)
{
if (Console->LineBuffer == NULL)
PCHAR_INFO Ptr;
COORD TopLeft = {0};
- ULONG NumCodesToWrite = Buffer->ScreenBufferSize.X * Buffer->ScreenBufferSize.Y;
- USHORT OldScreenAttrib = Buffer->ScreenDefaultAttrib;
+ ULONG NumCodesToWrite;
+ USHORT OldScreenAttrib;
if (Console == NULL || Buffer == NULL)
{
/* Validity check */
ASSERT(Console == Buffer->Header.Console);
+ NumCodesToWrite = Buffer->ScreenBufferSize.X * Buffer->ScreenBufferSize.Y;
+ OldScreenAttrib = Buffer->ScreenDefaultAttrib;
+
X = TopLeft.X;
Y = (TopLeft.Y + Buffer->VirtualY) % Buffer->ScreenBufferSize.Y;
Length = NumCodesToWrite;
+
// Ptr = ConioCoordToPointer(Buffer, X, Y); // Doesn't work
// Ptr = &Buffer->Buffer[X + Y * Buffer->ScreenBufferSize.X]; // May work
TranslateConsoleName(szBuffer2, ConsoleTitle, MAX_PATH);
/* Create the registry path */
- wcsncat(szBuffer, szBuffer2, MAX_PATH);
+ wcsncat(szBuffer, szBuffer2, MAX_PATH - wcslen(szBuffer) - 1);
/* Create or open the registry key */
if (bCreate)