diff options
| author | Rusty Wagner <rusty@vector35.com> | 2019-05-10 16:15:48 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2019-05-10 16:15:48 -0400 |
| commit | f6659517c08799cf52fddd09424eaea867ff3ed7 (patch) | |
| tree | ab06cf065b7c152dff91658c7247946cb7ffaec8 /flowgraph.cpp | |
| parent | 63a4020845a81cf8793ddb02c7d5c95e3317d2a1 (diff) | |
Fix memory leak and use after free bugs in BinaryView and FlowGraph objects
Diffstat (limited to 'flowgraph.cpp')
| -rw-r--r-- | flowgraph.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/flowgraph.cpp b/flowgraph.cpp index 3de9c90e..9e3466c8 100644 --- a/flowgraph.cpp +++ b/flowgraph.cpp @@ -76,6 +76,11 @@ FlowGraph::FlowGraph() callbacks.prepareForLayout = PrepareForLayoutCallback; callbacks.populateNodes = PopulateNodesCallback; callbacks.completeLayout = CompleteLayoutCallback; + callbacks.update = UpdateCallback; + callbacks.freeObject = FreeObjectCallback; + callbacks.externalRefTaken = nullptr; + callbacks.externalRefReleased = nullptr; + AddRefForRegistration(); m_object = BNCreateCustomFlowGraph(&callbacks); } @@ -117,6 +122,13 @@ BNFlowGraph* FlowGraph::UpdateCallback(void* ctxt) } +void FlowGraph::FreeObjectCallback(void* ctxt) +{ + FlowGraph* graph = (FlowGraph*)ctxt; + graph->ReleaseForRegistration(); +} + + void FlowGraph::FinishPrepareForLayout() { BNFinishPrepareForLayout(m_object); |
