winspool: Avoid memory leaks (coverity)

André Hentschel nerv at dawncrow.de
Thu Nov 1 10:08:29 CDT 2012


CID 713817 & 713819
---
 dlls/winspool.drv/info.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 7509a8e..af336cb 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -944,7 +944,11 @@ static BOOL CUPS_LoadPrinters(void)
                 unlink_ppd( ppd );
             }
             HeapFree( GetProcessHeap(), 0, ppd );
-            if (!added_driver) continue;
+            if (!added_driver)
+            {
+                HeapFree( GetProcessHeap(), 0, port );
+                continue;
+            }
 
             memset(&pi2, 0, sizeof(PRINTER_INFO_2W));
             pi2.pPrinterName    = nameW;
@@ -2374,7 +2378,7 @@ LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
 {
 
     LPSTR pDeviceNameA = strdupWtoA(pDeviceName);
-    LPDEVMODEA pDevModeInputA = DEVMODEdupWtoA(pDevModeInput);
+    LPDEVMODEA pDevModeInputA;
     LPDEVMODEA pDevModeOutputA = NULL;
     LONG ret;
 
@@ -2386,6 +2390,7 @@ LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
 	if(ret < 0) return ret;
 	pDevModeOutputA = HeapAlloc(GetProcessHeap(), 0, ret);
     }
+    pDevModeInputA = DEVMODEdupWtoA(pDevModeInput);
     ret = DocumentPropertiesA(hWnd, hPrinter, pDeviceNameA, pDevModeOutputA,
 			      pDevModeInputA, fMode);
     if(pDevModeOutput) {
-- 
1.8.0



-- 

Best Regards, André Hentschel


More information about the wine-patches mailing list