summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binaryninjacore.h10
-rw-r--r--binaryview.cpp20
-rw-r--r--firmwareninja.cpp31
-rw-r--r--scriptingprovider.cpp5
-rw-r--r--typeparser.cpp5
-rw-r--r--user.cpp15
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;
}
diff --git a/user.cpp b/user.cpp
index 03522255..321b457a 100644
--- a/user.cpp
+++ b/user.cpp
@@ -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;
}