Author: dgorbachev Date: Sat Jun 16 12:27:02 2007 New Revision: 27199
URL: http://svn.reactos.org/svn/reactos?rev=27199&view=rev Log: Unable to reproduce that bug (#2047). Apply r27177 patch again.
Modified: trunk/reactos/subsystems/win32/csrss/win32csr/conio.c
Modified: trunk/reactos/subsystems/win32/csrss/win32csr/conio.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/win3... ============================================================================== --- trunk/reactos/subsystems/win32/csrss/win32csr/conio.c (original) +++ trunk/reactos/subsystems/win32/csrss/win32csr/conio.c Sat Jun 16 12:27:02 2007 @@ -2574,11 +2574,19 @@ if (! ConioGetIntersection(&SrcRegion, &ScreenBuffer, &ScrollRectangle)) { ConioUnlockScreenBuffer(Buff); + if (NULL != Console) + { + ConioUnlockConsole(Console); + } return Request->Status = STATUS_INVALID_PARAMETER; }
if (UseClipRectangle && ! ConioGetIntersection(&SrcRegion, &SrcRegion, &ClipRectangle)) { + if (NULL != Console) + { + ConioUnlockConsole(Console); + } ConioUnlockScreenBuffer(Buff); return Request->Status = STATUS_SUCCESS; } @@ -2593,6 +2601,10 @@ /* Make sure destination rectangle is inside the screen buffer */ if (! ConioGetIntersection(&DstRegion, &DstRegion, &ScreenBuffer)) { + if (NULL != Console) + { + ConioUnlockConsole(Console); + } ConioUnlockScreenBuffer(Buff); return Request->Status = STATUS_INVALID_PARAMETER; } @@ -2663,6 +2675,10 @@ Status = ConioLockScreenBuffer(ProcessData, Request->Data.ReadConsoleOutputCharRequest.ConsoleHandle, &Buff); if (! NT_SUCCESS(Status)) { + if (NULL != Console) + { + ConioUnlockConsole(Console); + } return Request->Status = Status; }