Module: wine Branch: master Commit: e3b558887d353ceadd952d148d59e98ae07127d0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e3b558887d353ceadd952d148d...
Author: Hans Leidekker hans@codeweavers.com Date: Tue Mar 31 11:31:28 2009 +0200
msi: Build a proper source path in MsiConfigureProductExW.
We were passing uninitialized data which would ultimately end up in the registry.
---
dlls/msi/msi.c | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c index 445d135..90c7ba6 100644 --- a/dlls/msi/msi.c +++ b/dlls/msi/msi.c @@ -476,7 +476,7 @@ UINT WINAPI MsiConfigureProductExW(LPCWSTR szProduct, int iInstallLevel, MSIINSTALLCONTEXT context; UINT r; DWORD sz; - WCHAR sourcepath[MAX_PATH]; + WCHAR sourcepath[MAX_PATH], filename[MAX_PATH]; LPWSTR commandline;
static const WCHAR szInstalled[] = { @@ -538,6 +538,16 @@ UINT WINAPI MsiConfigureProductExW(LPCWSTR szProduct, int iInstallLevel, if (context == MSIINSTALLCONTEXT_MACHINE) lstrcatW(commandline, szMachine);
+ sz = sizeof(sourcepath); + MsiSourceListGetInfoW(szProduct, NULL, context, MSICODE_PRODUCT, + INSTALLPROPERTY_LASTUSEDSOURCEW, sourcepath, &sz); + + sz = sizeof(filename); + MsiSourceListGetInfoW(szProduct, NULL, context, MSICODE_PRODUCT, + INSTALLPROPERTY_PACKAGENAMEW, filename, &sz); + + strcatW(sourcepath, filename); + r = MSI_InstallPackage( package, sourcepath, commandline );
msi_free(commandline);