James Hawkins wrote:
@@ -1456,6 +1456,9 @@ static void msi_dialog_update_pathedit(
prop = msi_dialog_dup_property( dialog, control->property, indirect );
path = msi_dup_property( dialog->package, prop );
+ if (!path)
+ path = prop;
+
SetWindowTextW( control->hwnd, path );
SendMessageW( control->hwnd, EM_SETSEL, 0, -1 );
Later on in that code block, it does:
msi_free( path );
msi_free( prop );
If path and prop point to the same thing, then we'll try free and
illegal pointer.
Looks like it would be better to replace msi_dup_property() with another
(new) macro function that understands this behavior, rather than
changing the code similarly in 4 places.
Mike