Module: wine Branch: master Commit: de11a50b915bbfbb124404b3a309b6dd8e6da9be URL: http://source.winehq.org/git/wine.git/?a=commit;h=de11a50b915bbfbb124404b3a3...
Author: Hans Leidekker hans@codeweavers.com Date: Thu Jan 5 10:20:18 2012 +0100
msi: Don't crash on secondary root folders in msi_resolve_target_folder.
---
dlls/msi/action.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c index 8505507..fb62339 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -2285,8 +2285,13 @@ void msi_resolve_target_folder( MSIPACKAGE *package, const WCHAR *name, BOOL loa } else if (!load_prop || !(path = msi_dup_property( package->db, folder->Directory ))) { - parent = msi_get_loaded_folder( package, folder->Parent ); - path = msi_build_directory_name( 3, parent->ResolvedTarget, folder->TargetDefault, NULL ); + if (folder->Parent && strcmpW( folder->Directory, folder->Parent )) + { + parent = msi_get_loaded_folder( package, folder->Parent ); + path = msi_build_directory_name( 3, parent->ResolvedTarget, folder->TargetDefault, NULL ); + } + else + path = msi_build_directory_name( 2, folder->TargetDefault, NULL ); } msi_clean_path( path ); if (folder->ResolvedTarget && !strcmpiW( path, folder->ResolvedTarget ))