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

This commit is contained in:
Hans Leidekker 2010-10-22 10:36:32 +02:00 committed by Alexandre Julliard
parent d7dbb7e08d
commit 7a460eba71
1 changed files with 8 additions and 7 deletions

View File

@ -5367,9 +5367,8 @@ static UINT ITERATE_InstallService(MSIRECORD *rec, LPVOID param)
MSIRECORD *row; MSIRECORD *row;
MSIFILE *file; MSIFILE *file;
SC_HANDLE hscm, service = NULL; SC_HANDLE hscm, service = NULL;
LPCWSTR comp, depends, pass; LPCWSTR comp, depends, key;
LPWSTR name = NULL, disp = NULL; LPWSTR name = NULL, disp = NULL, load_order = NULL, serv_name = NULL, pass = NULL;
LPCWSTR load_order, serv_name, key;
DWORD serv_type, start_type; DWORD serv_type, start_type;
DWORD err_control; DWORD err_control;
SERVICE_DESCRIPTIONW sd = {NULL}; SERVICE_DESCRIPTIONW sd = {NULL};
@ -5400,9 +5399,9 @@ static UINT ITERATE_InstallService(MSIRECORD *rec, LPVOID param)
deformat_string(package, MSI_RecordGetString(rec, 3), &disp); deformat_string(package, MSI_RecordGetString(rec, 3), &disp);
serv_type = MSI_RecordGetInteger(rec, 4); serv_type = MSI_RecordGetInteger(rec, 4);
err_control = MSI_RecordGetInteger(rec, 6); err_control = MSI_RecordGetInteger(rec, 6);
load_order = MSI_RecordGetString(rec, 7); deformat_string(package, MSI_RecordGetString(rec, 7), &load_order);
serv_name = MSI_RecordGetString(rec, 9); deformat_string(package, MSI_RecordGetString(rec, 9), &serv_name);
pass = MSI_RecordGetString(rec, 10); deformat_string(package, MSI_RecordGetString(rec, 10), &pass);
comp = MSI_RecordGetString(rec, 12); comp = MSI_RecordGetString(rec, 12);
deformat_string(package, MSI_RecordGetString(rec, 13), &sd.lpDescription); 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"); ERR("Control query failed!\n");
goto done; goto done;
} }
key = MSI_RecordGetString(row, 6); key = MSI_RecordGetString(row, 6);
file = get_loaded_file(package, key); file = get_loaded_file(package, key);
@ -5444,6 +5442,9 @@ done:
msi_free(name); msi_free(name);
msi_free(disp); msi_free(disp);
msi_free(sd.lpDescription); msi_free(sd.lpDescription);
msi_free(load_order);
msi_free(serv_name);
msi_free(pass);
return ERROR_SUCCESS; return ERROR_SUCCESS;
} }