Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Craddock <nzcraddock@gmail.com>2020-11-15 00:09:53 +0300
committerNathan Craddock <nzcraddock@gmail.com>2020-11-15 00:24:40 +0300
commit194a57fd631f755a1a443ff0ccd7c7d9c066d394 (patch)
tree14e40800c7f1e2c4c20a4f8817c8cf7da4ff02b5 /source/blender/editors/space_outliner/space_outliner.c
parent6ac5e0b3e852a93803abfb0d36886f95aaa23e8e (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.c3
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;