Hans Leidekker : msi: Don' t crash on secondary root folders in msi_resolve_target_folder.
Alexandre Julliard
julliard at winehq.org
Thu Jan 5 15:24:42 CST 2012
Module: wine
Branch: master
Commit: de11a50b915bbfbb124404b3a309b6dd8e6da9be
URL: http://source.winehq.org/git/wine.git/?a=commit;h=de11a50b915bbfbb124404b3a309b6dd8e6da9be
Author: Hans Leidekker <hans at 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 ))
More information about the wine-cvs
mailing list