comdlg32: Fix some memory leaks (3 of 3)
Andrew Talbot
andrew.talbot at talbotville.com
Thu Sep 13 18:16:19 CDT 2007
Changelog:
comdlg32: Fix some memory leaks.
diff -urN a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c
--- a/dlls/comdlg32/printdlg.c 2007-09-02 09:31:54.000000000 +0100
+++ b/dlls/comdlg32/printdlg.c 2007-09-13 23:43:52.000000000 +0100
@@ -2059,7 +2059,10 @@
GetPrinterDriverA(hprn, NULL, 3, NULL, 0, &needed);
dbuf = HeapAlloc(GetProcessHeap(),0,needed);
if (!GetPrinterDriverA(hprn, NULL, 3, (LPBYTE)dbuf, needed, &needed)) {
- ERR("GetPrinterDriverA failed, le %d, fix your config for printer %s!\n",GetLastError(),pbuf->pPrinterName);
+ ERR("GetPrinterDriverA failed, le %d, fix your config for printer %s!\n",
+ GetLastError(),pbuf->pPrinterName);
+ HeapFree(GetProcessHeap(), 0, dbuf);
+ HeapFree(GetProcessHeap(), 0, pbuf);
COMDLG32_SetCommDlgExtendedError(PDERR_RETDEFFAILURE);
return FALSE;
}
@@ -2206,7 +2209,10 @@
GetPrinterDriverW(hprn, NULL, 3, NULL, 0, &needed);
dbuf = HeapAlloc(GetProcessHeap(),0,sizeof(WCHAR)*needed);
if (!GetPrinterDriverW(hprn, NULL, 3, (LPBYTE)dbuf, needed, &needed)) {
- ERR("GetPrinterDriverA failed, le %d, fix your config for printer %s!\n",GetLastError(),debugstr_w(pbuf->pPrinterName));
+ ERR("GetPrinterDriverA failed, le %d, fix your config for printer %s!\n",
+ GetLastError(),debugstr_w(pbuf->pPrinterName));
+ HeapFree(GetProcessHeap(), 0, dbuf);
+ HeapFree(GetProcessHeap(), 0, pbuf);
COMDLG32_SetCommDlgExtendedError(PDERR_RETDEFFAILURE);
return FALSE;
}
@@ -2615,6 +2621,8 @@
lpDriverInfo = HeapAlloc(GetProcessHeap(), 0, needed);
if(!GetPrinterDriverA(hprn, NULL, 3, (LPBYTE)lpDriverInfo, needed, &needed)) {
ERR("GetPrinterDriverA failed for %s, fix your config!\n", lpPrinterInfo->pPrinterName);
+ HeapFree(GetProcessHeap(), 0, lpDriverInfo);
+ HeapFree(GetProcessHeap(), 0, lpPrinterInfo);
return FALSE;
}
ClosePrinter(hprn);
@@ -2622,6 +2630,8 @@
needed = DocumentPropertiesA(0, 0, name, NULL, NULL, 0);
if(needed == -1) {
ERR("DocumentProperties fails on %s\n", debugstr_a(name));
+ HeapFree(GetProcessHeap(), 0, lpDriverInfo);
+ HeapFree(GetProcessHeap(), 0, lpPrinterInfo);
return FALSE;
}
pDevMode = HeapAlloc(GetProcessHeap(), 0, needed);
More information about the wine-patches
mailing list