James Hawkins : msi: Free the temp buffer if we haven' t assigned it to *appValue.
Module: wine Branch: master Commit: 8ed06175a0b36ae0bd509c8e490a5e84e55d9912 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8ed06175a0b36ae0bd509c8e49... Author: James Hawkins <truiken(a)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;
participants (1)
-
Alexandre Julliard