diff options
| -rw-r--r-- | binaryview.cpp | 6 | ||||
| -rw-r--r-- | metadata.cpp | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/binaryview.cpp b/binaryview.cpp index dfb79189..f0fdb70c 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -1430,6 +1430,7 @@ Ref<Symbol> BinaryView::GetSymbolByRawName(const string& name, const NameSpace& { BNNameSpace ns = nameSpace.GetAPIObject(); BNSymbol* sym = BNGetSymbolByRawName(m_object, name.c_str(), &ns); + NameSpace::FreeAPIObject(&ns); if (!sym) return nullptr; return new Symbol(sym); @@ -1441,6 +1442,7 @@ vector<Ref<Symbol>> BinaryView::GetSymbolsByName(const string& name, const NameS size_t count; BNNameSpace ns = nameSpace.GetAPIObject(); BNSymbol** syms = BNGetSymbolsByName(m_object, name.c_str(), &count, &ns); + NameSpace::FreeAPIObject(&ns); vector<Ref<Symbol>> result; result.reserve(count); @@ -1457,6 +1459,7 @@ vector<Ref<Symbol>> BinaryView::GetSymbols(const NameSpace& nameSpace) size_t count; BNNameSpace ns = nameSpace.GetAPIObject(); BNSymbol** syms = BNGetSymbols(m_object, &count, &ns); + NameSpace::FreeAPIObject(&ns); vector<Ref<Symbol>> result; result.reserve(count); @@ -1473,6 +1476,7 @@ vector<Ref<Symbol>> BinaryView::GetSymbols(uint64_t start, uint64_t len, const N size_t count; BNNameSpace ns = nameSpace.GetAPIObject(); BNSymbol** syms = BNGetSymbolsInRange(m_object, start, len, &count, &ns); + NameSpace::FreeAPIObject(&ns); vector<Ref<Symbol>> result; result.reserve(count); @@ -1489,6 +1493,7 @@ vector<Ref<Symbol>> BinaryView::GetSymbolsOfType(BNSymbolType type, const NameSp size_t count; BNNameSpace ns = nameSpace.GetAPIObject(); BNSymbol** syms = BNGetSymbolsOfType(m_object, type, &count, &ns); + NameSpace::FreeAPIObject(&ns); vector<Ref<Symbol>> result; result.reserve(count); @@ -1505,6 +1510,7 @@ vector<Ref<Symbol>> BinaryView::GetSymbolsOfType(BNSymbolType type, uint64_t sta size_t count; BNNameSpace ns = nameSpace.GetAPIObject(); BNSymbol** syms = BNGetSymbolsOfTypeInRange(m_object, type, start, len, &count, &ns); + NameSpace::FreeAPIObject(&ns); vector<Ref<Symbol>> result; result.reserve(count); diff --git a/metadata.cpp b/metadata.cpp index c111233f..08f9660c 100644 --- a/metadata.cpp +++ b/metadata.cpp @@ -112,7 +112,10 @@ bool Metadata::GetBoolean() const string Metadata::GetString() const { - return BNMetadataGetString(m_object); + char* str = BNMetadataGetString(m_object); + string result = string(str); + BNFreeString(str); + return result; } uint64_t Metadata::GetUnsignedInteger() const |
