Author: akhaldi
Date: Tue May  3 20:08:25 2016
New Revision: 71250
URL: 
http://svn.reactos.org/svn/reactos?rev=71250&view=rev
Log:
[0.4.1] * Apply the hackfix from CORE-9836 by Joachim Henze.
Modified:
    branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/class.c
    branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/cursoricon.c
    branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/msgqueue.c
Modified: branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/class.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-branch-0_4_1/reactos/win32s…
==============================================================================
--- branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/class.c       [iso-8859-1]
(original)
+++ branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/class.c       [iso-8859-1] Tue
May  3 20:08:25 2016
@@ -267,8 +267,11 @@
     if (Class->spicn)
         UserDereferenceObject(Class->spicn);
-    if (Class->spcur)
+    if (Class->spcur && !UserObjectInDestroy(Class->spcur))
+    {
         UserDereferenceObject(Class->spcur);
+        Class->spcur = NULL;
+    }
     if (Class->spicnSm)
     {
         UserDereferenceObject(Class->spicnSm);
Modified: branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/cursoricon.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-branch-0_4_1/reactos/win32s…
==============================================================================
--- branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/cursoricon.c  [iso-8859-1]
(original)
+++ branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/cursoricon.c  [iso-8859-1] Tue
May  3 20:08:25 2016
@@ -1086,11 +1086,14 @@
            goto leave;
         }
+        pcurOld->CURSORF_flags &= ~CURSORF_CURRENT;
+
         /* See if it was destroyed in the meantime */
         if (UserObjectInDestroy(hOldCursor))
-            hOldCursor = NULL;
-        pcurOld->CURSORF_flags &= ~CURSORF_CURRENT;
-        UserDereferenceObject(pcurOld);
+        {
+            UserDereferenceObject(pcurOld);
+            pcurOld = NULL;
+        }
     }
 leave:
Modified: branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/msgqueue.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-branch-0_4_1/reactos/win32s…
==============================================================================
--- branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/msgqueue.c    [iso-8859-1]
(original)
+++ branches/ros-branch-0_4_1/reactos/win32ss/user/ntuser/msgqueue.c    [iso-8859-1] Tue
May  3 20:08:25 2016
@@ -2288,8 +2288,12 @@
            IntGetSysCursorInfo()->CurrentCursorObject = NULL;
        }
-       TRACE("DereferenceObject pCursor\n");
-       UserDereferenceObject(pCursor);
+       if (pCursor && UserObjectInDestroy(UserHMGetHandle(pCursor)))
+       {
+           TRACE("DereferenceObject pCursor\n");
+           UserDereferenceObject(pCursor);
+           pCursor = NULL;
+       }
    }
    if (gpqForeground == MessageQueue)