Commit: e1e9b5e661b41e86030a50a32131e6e64ea73e86
Author: Hans Goudey
Date: Tue Sep 29 17:19:57 2020 -0500
Branches: master
https://developer.blender.org/rBe1e9b5e661b41e86030a50a32131e6e64ea73e86
Fix use after free deleting object with modifier panels visible
It's necessary to check if the panels are active before accessing their
data. Thanks to @ankitm for reporting this.
===================================================================
M source/blender/editors/interface/interface_panel.c
===================================================================
diff --git a/source/blender/editors/interface/interface_panel.c
b/source/blender/editors/interface/interface_panel.c
index a23929ad789..66b9ec8685c 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -524,9 +524,11 @@ void UI_panel_set_expand_from_list_data(const bContext *C,
Panel *panel)
static void region_panels_set_expansion_from_list_data(const bContext *C,
ARegion *region)
{
LISTBASE_FOREACH (Panel *, panel, ®ion->panels) {
- PanelType *panel_type = panel->type;
- if (panel_type != NULL && panel->type->flag & PNL_INSTANCED) {
- UI_panel_set_expand_from_list_data(C, panel);
+ if (panel->runtime_flag & PANEL_ACTIVE) {
+ PanelType *panel_type = panel->type;
+ if (panel_type != NULL && panel->type->flag & PNL_INSTANCED) {
+ UI_panel_set_expand_from_list_data(C, panel);
+ }
}
}
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs