[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-cvs
Subject: Hans Leidekker : msi: Build a proper source path in
From: Alexandre Julliard <julliard () winehq ! org>
Date: 2009-03-31 17:19:22
Message-ID: E1LohcQ-00072J-KU () wine ! codeweavers ! com
[Download RAW message or body]
Module: wine
Branch: master
Commit: e3b558887d353ceadd952d148d59e98ae07127d0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e3b558887d353ceadd952d148d59e98ae07127d0
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);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic