diff options
author | Nathan Craddock <nzcraddock@gmail.com> | 2020-11-15 00:09:53 +0300 |
---|---|---|
committer | Nathan Craddock <nzcraddock@gmail.com> | 2020-11-15 00:24:40 +0300 |
commit | 194a57fd631f755a1a443ff0ccd7c7d9c066d394 (patch) | |
tree | 14e40800c7f1e2c4c20a4f8817c8cf7da4ff02b5 /source/blender/editors/space_outliner/space_outliner.c | |
parent | 6ac5e0b3e852a93803abfb0d36886f95aaa23e8e (diff) |
Outliner: Fix memory errors in runtime data
Fix a heap-use-after-free when duplicating outliner editors, and fully
free runtime data when freeing outliner editors.
Diffstat (limited to 'source/blender/editors/space_outliner/space_outliner.c')
-rw-r--r-- | source/blender/editors/space_outliner/space_outliner.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c index ce772043e3b..5ec55eee7fb 100644 --- a/source/blender/editors/space_outliner/space_outliner.c +++ b/source/blender/editors/space_outliner/space_outliner.c @@ -53,6 +53,7 @@ #include "GPU_framebuffer.h" #include "outliner_intern.h" +#include "tree/tree_display.h" static void outliner_main_region_init(wmWindowManager *wm, ARegion *region) { @@ -353,6 +354,7 @@ static void outliner_free(SpaceLink *sl) } if (space_outliner->runtime) { + outliner_tree_display_destroy(&space_outliner->runtime->tree_display); MEM_freeN(space_outliner->runtime); } } @@ -381,6 +383,7 @@ static SpaceLink *outliner_duplicate(SpaceLink *sl) if (space_outliner->runtime) { space_outliner_new->runtime = MEM_dupallocN(space_outliner->runtime); + space_outliner_new->runtime->tree_display = NULL; } return (SpaceLink *)space_outliner_new; |