[PATCH] localui: Fix a memory leak

Detlef Riekenberg wine.dev at web.de
Tue Sep 29 06:35:45 CDT 2009


---
 dlls/localui/localui.c |   10 +++-------
 1 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/dlls/localui/localui.c b/dlls/localui/localui.c
index 2acfc7e..b9e4c4e 100644
--- a/dlls/localui/localui.c
+++ b/dlls/localui/localui.c
@@ -503,7 +503,6 @@ static BOOL WINAPI localui_AddPortUI(PCWSTR pName, HWND hWnd, PCWSTR pMonitorNam
 {
     addportui_t data;
     HANDLE  hXcv;
-    LPWSTR  ptr = NULL;
     DWORD   needed;
     DWORD   dummy;
     DWORD   status;
@@ -529,14 +528,11 @@ static BOOL WINAPI localui_AddPortUI(PCWSTR pName, HWND hWnd, PCWSTR pMonitorNam
                             (PBYTE) &dummy, 0, &needed, &status);
 
             TRACE("got %u with status %u\n", res, status);
-            if (res && (status == ERROR_SUCCESS)) {
+            if (res && (status == ERROR_SUCCESS) && ppPortName) {
                 /* Native localui uses GlobalAlloc also.
                    The caller must GlobalFree the buffer */
-                ptr = GlobalAlloc(GPTR, (lstrlenW(data.portname)+1) * sizeof(WCHAR));
-                if (ptr) {
-                    lstrcpyW(ptr, data.portname);
-                    if (ppPortName) *ppPortName = ptr;
-                }
+                *ppPortName = GlobalAlloc(GPTR, (lstrlenW(data.portname)+1) * sizeof(WCHAR));
+                if (*ppPortName) lstrcpyW(*ppPortName, data.portname);
             }
 
             if (res && (status == ERROR_ALREADY_EXISTS)) {
-- 
1.5.4.3


--=-Qhe0u7QX5Ubc6QHVMzep--




More information about the wine-patches mailing list