Module: wine Branch: master Commit: daaa4c40d46e08e2bb3ab5ddb5889bdc6e782594 URL: http://source.winehq.org/git/wine.git/?a=commit;h=daaa4c40d46e08e2bb3ab5ddb5...
Author: Bruno Jesus 00cpxxx@gmail.com Date: Mon Jul 7 21:12:25 2014 -0300
winspool: Fix a leak in DocumentPropertiesA (valgrind).
---
dlls/winspool.drv/info.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index bfb22cb..73323f8 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -2361,7 +2361,7 @@ LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter, LPSTR pDeviceName, LPDEVMODEA pDevModeOutput, LPDEVMODEA pDevModeInput,DWORD fMode ) { - LPSTR lpName = pDeviceName; + LPSTR lpName = pDeviceName, dupname = NULL; static CHAR port[] = "LPT1:"; LONG ret;
@@ -2376,7 +2376,7 @@ LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter, SetLastError(ERROR_INVALID_HANDLE); return -1; } - lpName = strdupWtoA(lpNameW); + lpName = dupname = strdupWtoA(lpNameW); }
if (!GDI_CallExtDeviceMode16) @@ -2385,14 +2385,15 @@ LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter, (LPCSTR)102 ); if (!GDI_CallExtDeviceMode16) { ERR("No CallExtDeviceMode16?\n"); - return -1; + ret = -1; + goto end; } } ret = GDI_CallExtDeviceMode16(hWnd, pDevModeOutput, lpName, port, pDevModeInput, NULL, fMode);
- if(!pDeviceName) - HeapFree(GetProcessHeap(),0,lpName); +end: + HeapFree(GetProcessHeap(), 0, dupname); return ret; }