Andrew Talbot : xcopy: Fix some memory leaks.
Module: wine Branch: master Commit: a8df7fddd54b865564a230e8aa13c45a655e48ba URL: http://source.winehq.org/git/wine.git/?a=commit;h=a8df7fddd54b865564a230e8aa... Author: Andrew Talbot <andrew.talbot(a)talbotville.com> Date: Wed Oct 24 22:02:43 2007 +0100 xcopy: Fix some memory leaks. --- programs/xcopy/xcopy.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/programs/xcopy/xcopy.c b/programs/xcopy/xcopy.c index a88a0ad..6a1e8bf 100644 --- a/programs/xcopy/xcopy.c +++ b/programs/xcopy/xcopy.c @@ -507,6 +507,7 @@ static int XCOPY_DoCopy(WCHAR *srcstem, WCHAR *srcspec, BOOL copiedFile = FALSE; DWORD destAttribs, srcAttribs; BOOL skipFile; + int ret = 0; /* Allocate some working memory on heap to minimize footprint */ finddata = HeapAlloc(GetProcessHeap(), 0, sizeof(WIN32_FIND_DATA)); @@ -718,7 +719,8 @@ static int XCOPY_DoCopy(WCHAR *srcstem, WCHAR *srcspec, if (flags & OPT_IGNOREERRORS) { skipFile = TRUE; } 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 */ HeapFree(GetProcessHeap(), 0, finddata); HeapFree(GetProcessHeap(), 0, inputpath); HeapFree(GetProcessHeap(), 0, outputpath); - return 0; + return ret; } /* =========================================================================
participants (1)
-
Alexandre Julliard