Hans Leidekker : msi: The LoadOrderGroup, StartName and Password fields from the ServiceInstall table are formatted strings .

Alexandre Julliard julliard at winehq.org
Fri Oct 22 12:30:46 CDT 2010


Module: wine
Branch: master
Commit: 7a460eba711f96ddddd31feb4bdb0fc1f087b42f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7a460eba711f96ddddd31feb4bdb0fc1f087b42f

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Fri Oct 22 10:36:32 2010 +0200

msi: The LoadOrderGroup, StartName and Password fields from the ServiceInstall table are formatted strings.

---

 dlls/msi/action.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index a9826c9..3b21810 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -5367,9 +5367,8 @@ static UINT ITERATE_InstallService(MSIRECORD *rec, LPVOID param)
     MSIRECORD *row;
     MSIFILE *file;
     SC_HANDLE hscm, service = NULL;
-    LPCWSTR comp, depends, pass;
-    LPWSTR name = NULL, disp = NULL;
-    LPCWSTR load_order, serv_name, key;
+    LPCWSTR comp, depends, key;
+    LPWSTR name = NULL, disp = NULL, load_order = NULL, serv_name = NULL, pass = NULL;
     DWORD serv_type, start_type;
     DWORD err_control;
     SERVICE_DESCRIPTIONW sd = {NULL};
@@ -5400,9 +5399,9 @@ static UINT ITERATE_InstallService(MSIRECORD *rec, LPVOID param)
     deformat_string(package, MSI_RecordGetString(rec, 3), &disp);
     serv_type = MSI_RecordGetInteger(rec, 4);
     err_control = MSI_RecordGetInteger(rec, 6);
-    load_order = MSI_RecordGetString(rec, 7);
-    serv_name = MSI_RecordGetString(rec, 9);
-    pass = MSI_RecordGetString(rec, 10);
+    deformat_string(package, MSI_RecordGetString(rec, 7), &load_order);
+    deformat_string(package, MSI_RecordGetString(rec, 9), &serv_name);
+    deformat_string(package, MSI_RecordGetString(rec, 10), &pass);
     comp = MSI_RecordGetString(rec, 12);
     deformat_string(package, MSI_RecordGetString(rec, 13), &sd.lpDescription);
 
@@ -5413,7 +5412,6 @@ static UINT ITERATE_InstallService(MSIRECORD *rec, LPVOID param)
         ERR("Control query failed!\n");
         goto done;
     }
-
     key = MSI_RecordGetString(row, 6);
 
     file = get_loaded_file(package, key);
@@ -5444,6 +5442,9 @@ done:
     msi_free(name);
     msi_free(disp);
     msi_free(sd.lpDescription);
+    msi_free(load_order);
+    msi_free(serv_name);
+    msi_free(pass);
 
     return ERROR_SUCCESS;
 }




More information about the wine-cvs mailing list