Author: gadamopoulos
Date: Sun Oct 28 17:31:33 2012
New Revision: 57642

URL: http://svn.reactos.org/svn/reactos?rev=57642&view=rev
Log:
[win32k]
- Plug some object leaks in callproc and clipboard code

Modified:
    trunk/reactos/win32ss/user/ntuser/callproc.c
    trunk/reactos/win32ss/user/ntuser/clipboard.c

Modified: trunk/reactos/win32ss/user/ntuser/callproc.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/callproc.c?rev=57642&r1=57641&r2=57642&view=diff
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/callproc.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/callproc.c [iso-8859-1] Sun Oct 28 
17:31:33 2012
@@ -45,6 +45,9 @@
         NewCallProc->wType |= Unicode ? UserGetCPDA2U : UserGetCPDU2A ;
         NewCallProc->spcpdNext = NULL;
     }
+
+    /* Release the extra reference (UserCreateObject added 2 references) */
+    UserDereferenceObject(NewCallProc);
 
     return NewCallProc;
 }

Modified: trunk/reactos/win32ss/user/ntuser/clipboard.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/clipboard.c?rev=57642&r1=57641&r2=57642&view=diff
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/clipboard.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/clipboard.c [iso-8859-1] Sun Oct 28 
17:31:33 2012
@@ -211,6 +211,9 @@
     /* Add the clipboard data */
     IntAddFormatedData(pWinStaObj, CF_DIB, hMem, TRUE, TRUE);
 
+    /* Release the extra reference (UserCreateObject added 2 references) */
+    UserDereferenceObject(pClipboardData);
+
 cleanup:
     UserReleaseDC(NULL, hdc, FALSE);
 }
@@ -302,6 +305,9 @@
             *((LCID*)pMemObj->Data) = NtCurrentTeb()->CurrentLocale;
             IntAddFormatedData(pWinStaObj, CF_LOCALE, hMem, TRUE, TRUE);
         }
+
+        /* Release the extra reference (UserCreateObject added 2 references) */
+        UserDereferenceObject(pMemObj);
     }
 
     /* Add CF_TEXT. Note: it is synthesized in user32.dll */
@@ -1099,6 +1105,9 @@
     }
     _SEH2_END;
 
+    /* Release the extra reference (UserCreateObject added 2 references) */
+    UserDereferenceObject(pMemObj);
+
     /* If we failed to copy data, remove handle */
     if (!pMemObj)
     {


Reply via email to