diff options
| -rw-r--r-- | binaryninjacore.h | 10 | ||||
| -rw-r--r-- | binaryview.cpp | 20 | ||||
| -rw-r--r-- | firmwareninja.cpp | 31 | ||||
| -rw-r--r-- | scriptingprovider.cpp | 5 | ||||
| -rw-r--r-- | typeparser.cpp | 5 | ||||
| -rw-r--r-- | user.cpp | 15 |
6 files changed, 59 insertions, 27 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h index ae906bb9..b4cd54d2 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -7138,7 +7138,7 @@ extern "C" BINARYNINJACOREAPI void BNUnregisterScriptingInstanceOutputListener( BNScriptingInstance* instance, BNScriptingOutputListener* callbacks); - BINARYNINJACOREAPI const char* BNGetScriptingInstanceDelimiters(BNScriptingInstance* instance); + BINARYNINJACOREAPI char* BNGetScriptingInstanceDelimiters(BNScriptingInstance* instance); BINARYNINJACOREAPI void BNSetScriptingInstanceDelimiters(BNScriptingInstance* instance, const char* delimiters); BINARYNINJACOREAPI BNScriptingProviderInputReadyState BNGetScriptingInstanceInputReadyState( @@ -8310,12 +8310,12 @@ extern "C" BINARYNINJACOREAPI bool BNFirmwareNinjaRelationshipGetSecondaryAddress(BNFirmwareNinjaRelationship* rel, uint64_t* result); BINARYNINJACOREAPI bool BNFirmwareNinjaRelationshipGetSecondaryDataVariable(BNFirmwareNinjaRelationship* rel, BNDataVariable* dataVariable); BINARYNINJACOREAPI BNFunction* BNFirmwareNinjaRelationshipGetSecondaryFunction(BNFirmwareNinjaRelationship* rel); - BINARYNINJACOREAPI const char* BNFirmwareNinjaRelationshipGetSecondaryExternalSymbol(BNFirmwareNinjaRelationship* rel); + BINARYNINJACOREAPI char* BNFirmwareNinjaRelationshipGetSecondaryExternalSymbol(BNFirmwareNinjaRelationship* rel); BINARYNINJACOREAPI void BNFirmwareNinjaRelationshipSetDescription(BNFirmwareNinjaRelationship* rel, const char* description); - BINARYNINJACOREAPI const char* BNFirmwareNinjaRelationshipGetDescription(BNFirmwareNinjaRelationship* rel); + BINARYNINJACOREAPI char* BNFirmwareNinjaRelationshipGetDescription(BNFirmwareNinjaRelationship* rel); BINARYNINJACOREAPI void BNFirmwareNinjaRelationshipSetProvenance(BNFirmwareNinjaRelationship* rel, const char* provenance); - BINARYNINJACOREAPI const char* BNFirmwareNinjaRelationshipGetProvenance(BNFirmwareNinjaRelationship* rel); - BINARYNINJACOREAPI const char* BNFirmwareNinjaRelationshipGetGuid(BNFirmwareNinjaRelationship* rel); + BINARYNINJACOREAPI char* BNFirmwareNinjaRelationshipGetProvenance(BNFirmwareNinjaRelationship* rel); + BINARYNINJACOREAPI char* BNFirmwareNinjaRelationshipGetGuid(BNFirmwareNinjaRelationship* rel); // Line formatters BINARYNINJACOREAPI BNLineFormatter* BNRegisterLineFormatter(const char* name, BNCustomLineFormatter* callbacks); diff --git a/binaryview.cpp b/binaryview.cpp index 242b2a01..310396c0 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -939,7 +939,10 @@ void TagType::SetName(const std::string& name) std::string TagType::GetIcon() const { - return BNTagTypeGetIcon(m_object); + char* str = BNTagTypeGetIcon(m_object); + string result = str; + BNFreeString(str); + return result; } @@ -1002,7 +1005,10 @@ Ref<TagType> Tag::GetType() const std::string Tag::GetData() const { - return BNTagGetData(m_object); + char* str = BNTagGetData(m_object); + string result = str; + BNFreeString(str); + return result; } @@ -1278,13 +1284,19 @@ uint64_t Section::GetEntrySize() const std::string Section::GetLinkedSection() const { - return BNSectionGetLinkedSection(m_object); + char* str = BNSectionGetLinkedSection(m_object); + string result = str; + BNFreeString(str); + return result; } std::string Section::GetInfoSection() const { - return BNSectionGetInfoSection(m_object); + char* str = BNSectionGetInfoSection(m_object); + string result = str; + BNFreeString(str); + return result; } diff --git a/firmwareninja.cpp b/firmwareninja.cpp index 1b159b4a..fef4af70 100644 --- a/firmwareninja.cpp +++ b/firmwareninja.cpp @@ -251,11 +251,11 @@ Ref<Function> FirmwareNinjaRelationship::GetSecondaryFunction() const std::string FirmwareNinjaRelationship::GetSecondaryExternalSymbol() const { - std::string result = ""; auto bnSymbol = BNFirmwareNinjaRelationshipGetSecondaryExternalSymbol(m_object); - if (bnSymbol) - result = std::string(bnSymbol); - + if (!bnSymbol) + return ""; + std::string result = bnSymbol; + BNFreeString(bnSymbol); return result; } @@ -268,11 +268,11 @@ void FirmwareNinjaRelationship::SetDescription(const std::string& description) std::string FirmwareNinjaRelationship::GetDescription() const { - std::string result = ""; auto bnDescription = BNFirmwareNinjaRelationshipGetDescription(m_object); - if (bnDescription) - result = std::string(bnDescription); - + if (!bnDescription) + return ""; + std::string result = bnDescription; + BNFreeString(bnDescription); return result; } @@ -285,18 +285,23 @@ void FirmwareNinjaRelationship::SetProvenance(const std::string& provenance) std::string FirmwareNinjaRelationship::GetProvenance() const { - std::string result = ""; auto bnProvenance = BNFirmwareNinjaRelationshipGetProvenance(m_object); - if (bnProvenance) - result = std::string(bnProvenance); - + if (!bnProvenance) + return ""; + std::string result = bnProvenance; + BNFreeString(bnProvenance); return result; } std::string FirmwareNinjaRelationship::GetGuid() const { - return BNFirmwareNinjaRelationshipGetGuid(m_object); + auto bnGuid = BNFirmwareNinjaRelationshipGetGuid(m_object); + if (!bnGuid) + return ""; + std::string result = bnGuid; + BNFreeString(bnGuid); + return result; } diff --git a/scriptingprovider.cpp b/scriptingprovider.cpp index 1aefd4f7..ad10ec5e 100644 --- a/scriptingprovider.cpp +++ b/scriptingprovider.cpp @@ -246,7 +246,10 @@ void ScriptingInstance::UnregisterOutputListener(ScriptingOutputListener* listen std::string ScriptingInstance::GetDelimiters() { - return BNGetScriptingInstanceDelimiters(m_object); + char* str = BNGetScriptingInstanceDelimiters(m_object); + std::string result = str; + BNFreeString(str); + return result; } diff --git a/typeparser.cpp b/typeparser.cpp index c32bcec1..7cbd442b 100644 --- a/typeparser.cpp +++ b/typeparser.cpp @@ -101,7 +101,10 @@ std::string TypeParser::FormatParseErrors(const std::vector<TypeParserError>& er std::string TypeParser::GetName() const { - return BNGetTypeParserName(m_object); + char* str = BNGetTypeParserName(m_object); + std::string result = str; + BNFreeString(str); + return result; } @@ -33,17 +33,26 @@ User::User(BNUser* user) string User::GetName() { - return BNGetUserName(m_object); + char* str = BNGetUserName(m_object); + string result = str; + BNFreeString(str); + return result; } string User::GetEmail() { - return BNGetUserEmail(m_object); + char* str = BNGetUserEmail(m_object); + string result = str; + BNFreeString(str); + return result; } string User::GetId() { - return BNGetUserId(m_object); + char* str = BNGetUserId(m_object); + string result = str; + BNFreeString(str); + return result; } |
