xcopy: Fix some memory leaks.

This commit is contained in:
Andrew Talbot 2007-10-24 22:02:43 +01:00 committed by Alexandre Julliard
parent f0c31f2e8a
commit a8df7fddd5
1 changed files with 6 additions and 2 deletions

View File

@ -507,6 +507,7 @@ static int XCOPY_DoCopy(WCHAR *srcstem, WCHAR *srcspec,
BOOL copiedFile = FALSE; BOOL copiedFile = FALSE;
DWORD destAttribs, srcAttribs; DWORD destAttribs, srcAttribs;
BOOL skipFile; BOOL skipFile;
int ret = 0;
/* Allocate some working memory on heap to minimize footprint */ /* Allocate some working memory on heap to minimize footprint */
finddata = HeapAlloc(GetProcessHeap(), 0, sizeof(WIN32_FIND_DATA)); finddata = HeapAlloc(GetProcessHeap(), 0, sizeof(WIN32_FIND_DATA));
@ -718,7 +719,8 @@ static int XCOPY_DoCopy(WCHAR *srcstem, WCHAR *srcspec,
if (flags & OPT_IGNOREERRORS) { if (flags & OPT_IGNOREERRORS) {
skipFile = TRUE; skipFile = TRUE;
} else { } else {
return RC_WRITEERROR; ret = RC_WRITEERROR;
goto cleanup;
} }
} }
@ -780,12 +782,14 @@ static int XCOPY_DoCopy(WCHAR *srcstem, WCHAR *srcspec,
} }
} }
cleanup:
/* free up memory */ /* free up memory */
HeapFree(GetProcessHeap(), 0, finddata); HeapFree(GetProcessHeap(), 0, finddata);
HeapFree(GetProcessHeap(), 0, inputpath); HeapFree(GetProcessHeap(), 0, inputpath);
HeapFree(GetProcessHeap(), 0, outputpath); HeapFree(GetProcessHeap(), 0, outputpath);
return 0; return ret;
} }
/* ========================================================================= /* =========================================================================