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