[Bf-blender-cvs] [f7655dd322d] master: UI Code Quality: Clear layout pointer on layout destruction

Julian Eisel noreply at git.blender.org
Mon Sep 28 12:07:21 CEST 2020


Commit: f7655dd322dd64d2a007857d2aff7d76bd86b60a
Author: Julian Eisel
Date:   Mon Sep 28 12:04:39 2020 +0200
Branches: master
https://developer.blender.org/rBf7655dd322dd64d2a007857d2aff7d76bd86b60a

UI Code Quality: Clear layout pointer on layout destruction

The layout pointer is quite ugly, but currently needed to work around
design issues. At least it should be cleared to avoid use-after-free.

===================================================================

M	source/blender/editors/interface/interface_layout.c

===================================================================

diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 23f29760a5e..ac1b9a972f0 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -5586,6 +5586,9 @@ static void ui_layout_free(uiLayout *layout)
 {
   LISTBASE_FOREACH_MUTABLE (uiItem *, item, &layout->items) {
     if (item->type == ITEM_BUTTON) {
+      uiButtonItem *bitem = (uiButtonItem *)item;
+
+      bitem->but->layout = NULL;
       MEM_freeN(item);
     }
     else {



More information about the Bf-blender-cvs mailing list