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/win…
==============================================================================
--- 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;
}