Commit cf4aec0c authored by Hans Leidekker's avatar Hans Leidekker Committed by Alexandre Julliard

msi: Avoid a crash in ControlEvent_SetTargetPath.

parent cfe4c566
...@@ -215,18 +215,19 @@ static UINT ControlEvent_AddSource( MSIPACKAGE *package, LPCWSTR argument, msi_d ...@@ -215,18 +215,19 @@ static UINT ControlEvent_AddSource( MSIPACKAGE *package, LPCWSTR argument, msi_d
static UINT ControlEvent_SetTargetPath(MSIPACKAGE* package, LPCWSTR argument, static UINT ControlEvent_SetTargetPath(MSIPACKAGE* package, LPCWSTR argument,
msi_dialog* dialog) msi_dialog* dialog)
{ {
static const WCHAR szSelectionPath[] = {'S','e','l','e','c','t','i','o','n','P','a','t','h',0};
LPWSTR path = msi_dup_property( package->db, argument ); LPWSTR path = msi_dup_property( package->db, argument );
MSIRECORD *rec = MSI_CreateRecord( 1 ); MSIRECORD *rec = MSI_CreateRecord( 1 );
UINT r; UINT r = ERROR_SUCCESS;
static const WCHAR szSelectionPath[] = {'S','e','l','e','c','t','i','o','n','P','a','t','h',0};
MSI_RecordSetStringW( rec, 1, path ); MSI_RecordSetStringW( rec, 1, path );
ControlEvent_FireSubscribedEvent( package, szSelectionPath, rec ); ControlEvent_FireSubscribedEvent( package, szSelectionPath, rec );
if (path)
/* failure to set the path halts the executing of control events */ {
r = MSI_SetTargetPathW(package, argument, path); /* failure to set the path halts the executing of control events */
msi_free(path); r = MSI_SetTargetPathW(package, argument, path);
msi_free(path);
}
msi_free(&rec->hdr); msi_free(&rec->hdr);
return r; return r;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment