[4/4] msi: Pass the control name to ControlEvent_SubscribeToEvent instead of uninitialized memory.

Hans Leidekker hans at codeweavers.com
Mon May 31 05:13:00 CDT 2010


---
 dlls/msi/dialog.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c
index 2a00aa7..1b129e0 100644
--- a/dlls/msi/dialog.c
+++ b/dlls/msi/dialog.c
@@ -774,7 +774,7 @@ static UINT msi_dialog_text_control( msi_dialog *dialog, MSIRECORD *rec )
 {
     msi_control *control;
     struct msi_text_info *info;
-    LPCWSTR text, ptr, prop;
+    LPCWSTR text, ptr, prop, control_name;
     LPWSTR font_name;
 
     TRACE("%p %p\n", dialog, rec);
@@ -787,6 +787,7 @@ static UINT msi_dialog_text_control( msi_dialog *dialog, MSIRECORD *rec )
     if( !info )
         return ERROR_SUCCESS;
 
+    control_name = MSI_RecordGetString( rec, 2 );
     control->attributes = MSI_RecordGetInteger( rec, 8 );
     prop = MSI_RecordGetString( rec, 9 );
     control->property = msi_dialog_dup_property( dialog, prop, FALSE );
@@ -805,7 +806,7 @@ static UINT msi_dialog_text_control( msi_dialog *dialog, MSIRECORD *rec )
     SetPropW( control->hwnd, szButtonData, info );
 
     ControlEvent_SubscribeToEvent( dialog->package, dialog,
-                                   szSelectionPath, control->name, szSelectionPath );
+                                   szSelectionPath, control_name, szSelectionPath );
 
     return ERROR_SUCCESS;
 }
@@ -2390,7 +2391,7 @@ done:
 static UINT msi_dialog_selection_tree( msi_dialog *dialog, MSIRECORD *rec )
 {
     msi_control *control;
-    LPCWSTR prop;
+    LPCWSTR prop, control_name;
     MSIPACKAGE *package = dialog->package;
     DWORD style;
     struct msi_selection_tree_info *info;
@@ -2410,6 +2411,7 @@ static UINT msi_dialog_selection_tree( msi_dialog *dialog, MSIRECORD *rec )
     }
 
     control->handler = msi_dialog_seltree_handler;
+    control_name = MSI_RecordGetString( rec, 2 );
     control->attributes = MSI_RecordGetInteger( rec, 8 );
     prop = MSI_RecordGetString( rec, 9 );
     control->property = msi_dialog_dup_property( dialog, prop, FALSE );
@@ -2422,7 +2424,7 @@ static UINT msi_dialog_selection_tree( msi_dialog *dialog, MSIRECORD *rec )
     SetPropW( control->hwnd, szButtonData, info );
 
     ControlEvent_SubscribeToEvent( dialog->package, dialog,
-                                   szSelectionPath, control->name, szProperty );
+                                   szSelectionPath, control_name, szProperty );
 
     /* initialize it */
     msi_seltree_create_imagelist( control->hwnd );
-- 
1.7.0.4







More information about the wine-patches mailing list