[ros-diffs] [janderwald] 43062: - Fix 2 user32 winstation test failures (patch by Giannis Adamopoulos johnyadams (_AT_)hotmail (D-O-T) com - Revert hack from 43061 and fix it properly - Test results verified by Amine Khaldi

janderwald at svn.reactos.org janderwald at svn.reactos.org
Thu Sep 17 17:20:24 CEST 2009


Author: janderwald
Date: Thu Sep 17 17:20:24 2009
New Revision: 43062

URL: http://svn.reactos.org/svn/reactos?rev=43062&view=rev
Log:
- Fix 2 user32 winstation test failures (patch by Giannis Adamopoulos johnyadams (_AT_)hotmail (D-O-T) com
- Revert hack from 43061 and fix it properly
- Test results verified by Amine Khaldi

Modified:
    trunk/reactos/subsystems/win32/win32k/ntuser/clipboard.c
    trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c

Modified: trunk/reactos/subsystems/win32/win32k/ntuser/clipboard.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntuser/clipboard.c?rev=43062&r1=43061&r2=43062&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/clipboard.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/clipboard.c [iso-8859-1] Thu Sep 17 17:20:24 2009
@@ -1152,7 +1152,7 @@
 
     WinSta = UserGetProcessWindowStation();
 
-    Status = IntValidateWindowStationHandle(WinSta, UserMode, 0 /*WINSTA_ACCESSCLIPBOARD*/, &WinStaObj);
+    Status = IntValidateWindowStationHandle(WinSta, KernelMode, WINSTA_ACCESSCLIPBOARD, &WinStaObj);
 
     if (!NT_SUCCESS(Status))
     {

Modified: trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c?rev=43062&r1=43061&r2=43062&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c [iso-8859-1] Thu Sep 17 17:20:24 2009
@@ -630,14 +630,14 @@
    InitializeObjectAttributes(
       &ObjectAttributes,
       &WindowStationName,
-      0,
+      OBJ_CASE_INSENSITIVE,
       NULL,
       NULL);
 
    Status = ObOpenObjectByName(
                &ObjectAttributes,
                ExWindowStationObjectType,
-               UserMode,
+               KernelMode,
                NULL,
                dwDesiredAccess,
                NULL,
@@ -686,6 +686,11 @@
    NTSTATUS Status;
 
    DPRINT("About to close window station handle (0x%X)\n", hWinSta);
+
+	if (hWinSta == UserGetProcessWindowStation())
+	{
+		return FALSE;
+	}
 
    Status = IntValidateWindowStationHandle(
                hWinSta,




More information about the Ros-diffs mailing list