Module: wine Branch: master Commit: 8ed06175a0b36ae0bd509c8e490a5e84e55d9912 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8ed06175a0b36ae0bd509c8e49...
Author: James Hawkins truiken@gmail.com Date: Tue Dec 15 18:19:31 2009 -0800
msi: Free the temp buffer if we haven't assigned it to *appValue.
---
dlls/msi/appsearch.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/appsearch.c b/dlls/msi/appsearch.c index 95daabb..b99b4f5 100644 --- a/dlls/msi/appsearch.c +++ b/dlls/msi/appsearch.c @@ -739,6 +739,7 @@ static UINT ACTION_RecurseSearchDirectory(MSIPACKAGE *package, LPWSTR *appValue, size_t dirLen = lstrlenW(dir), fileLen = lstrlenW(sig->File); WCHAR subpath[MAX_PATH]; WCHAR *buf; + DWORD len;
static const WCHAR starDotStarW[] = { '*','.','*',0 };
@@ -753,7 +754,8 @@ static UINT ACTION_RecurseSearchDirectory(MSIPACKAGE *package, LPWSTR *appValue, * here. Add two because we might need to add a backslash if the dir name * isn't backslash-terminated. */ - buf = msi_alloc( (dirLen + max(fileLen, strlenW(starDotStarW)) + 2) * sizeof(WCHAR)); + len = dirLen + max(fileLen, strlenW(starDotStarW)) + 2; + buf = msi_alloc(len * sizeof(WCHAR)); if (!buf) return ERROR_OUTOFMEMORY;
@@ -815,7 +817,7 @@ static UINT ACTION_RecurseSearchDirectory(MSIPACKAGE *package, LPWSTR *appValue, } }
- if (!*appValue) + if (*appValue != buf) msi_free(buf);
return rc;