diff options
| -rw-r--r-- | binaryninjaapi.h | 1 | ||||
| -rw-r--r-- | binaryninjacore.h | 3 | ||||
| -rw-r--r-- | firmwareninja.cpp | 7 | ||||
| -rw-r--r-- | python/firmwareninja.py | 9 |
4 files changed, 10 insertions, 10 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 50312bbc..4566ddd3 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -19354,7 +19354,6 @@ namespace BinaryNinja { { public: FirmwareNinjaRelationship(Ref<BinaryView> view, BNFirmwareNinjaRelationship* relationship = nullptr); - ~FirmwareNinjaRelationship(); /*! Set the primary relationship object to an address diff --git a/binaryninjacore.h b/binaryninjacore.h index 93a15b54..852ee230 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -37,7 +37,7 @@ // Current ABI version for linking to the core. This is incremented any time // there are changes to the API that affect linking, including new functions, // new types, or modifications to existing functions or types. -#define BN_CURRENT_CORE_ABI_VERSION 125 +#define BN_CURRENT_CORE_ABI_VERSION 126 // Minimum ABI version that is supported for loading of plugins. Plugins that // are linked to an ABI version less than this will not be able to load and @@ -8429,6 +8429,7 @@ extern "C" BINARYNINJACOREAPI BNFirmwareNinjaReferenceNode* BNFirmwareNinjaGetMemoryRegionReferenceTree(BNFirmwareNinja* fn, uint64_t start, uint64_t end, BNFirmwareNinjaFunctionMemoryAccesses** fma, int size, uint64_t* value); BINARYNINJACOREAPI BNFirmwareNinjaReferenceNode* BNFirmwareNinjaGetAddressReferenceTree(BNFirmwareNinja* fn, uint64_t address, BNFirmwareNinjaFunctionMemoryAccesses** fma, int size, uint64_t* value); BINARYNINJACOREAPI BNFirmwareNinjaRelationship** BNFirmwareNinjaQueryRelationships(BNFirmwareNinja* fn, size_t* count); + BINARYNINJACOREAPI void BNFirmwareNinjaFreeRelationships(BNFirmwareNinjaRelationship** relationships, size_t count); BINARYNINJACOREAPI void BNFirmwareNinjaAddRelationship(BNFirmwareNinja* fn, BNFirmwareNinjaRelationship* rel); BINARYNINJACOREAPI BNFirmwareNinjaRelationship* BNFirmwareNinjaGetRelationshipByGuid(BNFirmwareNinja* fn, const char* guid); BINARYNINJACOREAPI void BNFirmwareNinjaRemoveRelationshipByGuid(BNFirmwareNinja* fn, const char* guid); diff --git a/firmwareninja.cpp b/firmwareninja.cpp index fef4af70..02c62526 100644 --- a/firmwareninja.cpp +++ b/firmwareninja.cpp @@ -67,12 +67,6 @@ FirmwareNinjaRelationship::FirmwareNinjaRelationship(Ref<BinaryView> view, BNFir } -FirmwareNinjaRelationship::~FirmwareNinjaRelationship() -{ - BNFreeFirmwareNinjaRelationship(m_object); -} - - void FirmwareNinjaRelationship::SetPrimaryAddress(uint64_t address) { BNFirmwareNinjaRelationshipSetPrimaryAddress(m_object, address); @@ -679,6 +673,7 @@ std::vector<Ref<FirmwareNinjaRelationship>> FirmwareNinja::QueryRelationships() BNNewFirmwareNinjaRelationshipReference(bnRelationships[i]))); } + BNFirmwareNinjaFreeRelationships(bnRelationships, count); return result; } diff --git a/python/firmwareninja.py b/python/firmwareninja.py index a48c8be1..c44aaf0a 100644 --- a/python/firmwareninja.py +++ b/python/firmwareninja.py @@ -829,11 +829,16 @@ class FirmwareNinja: """ count = ctypes.c_ulonglong(0) - relationships = core.BNFirmwareNinjaQueryRelationships(self._handle, count) + relationships = core.BNFirmwareNinjaQueryRelationships(self._handle, ctypes.byref(count)) relationship_list = [] for i in range(count.value): - relationship_list.append(FirmwareNinjaRelationship(self._view, handle=relationships[i])) + relationship_list.append( + FirmwareNinjaRelationship( + self._view, handle=core.BNNewFirmwareNinjaRelationshipReference(relationships[i]) + ) + ) + core.BNFirmwareNinjaFreeRelationships(relationships, count.value) return relationship_list def add_relationship(self, relationship: FirmwareNinjaRelationship) -> None: |
