[PATCH] user32: free the correct dce (Coverity)

Marcus Meissner marcus at jet.franken.de
Fri Aug 17 14:23:38 CDT 2012


dce_to_free is probably better here.  CID 714107
Also set dce=NULL to avoid returning a just freed dce.
---
 dlls/user32/painting.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/dlls/user32/painting.c b/dlls/user32/painting.c
index 5a3614c..dcf615d 100644
--- a/dlls/user32/painting.c
+++ b/dlls/user32/painting.c
@@ -314,9 +314,11 @@ static struct dce *get_window_dce( HWND hwnd )
 
         if (dce_to_free)
         {
-            SetDCHook( dce->hdc, NULL, 0 );
-            DeleteDC( dce->hdc );
-            HeapFree( GetProcessHeap(), 0, dce );
+            SetDCHook( dce_to_free->hdc, NULL, 0 );
+            DeleteDC( dce_to_free->hdc );
+            HeapFree( GetProcessHeap(), 0, dce_to_free );
+            if (dce_to_free == dce)
+                dce = NULL;
         }
     }
     return dce;
-- 
1.7.3.4




More information about the wine-patches mailing list