From 0c34857925e6b0c220871f921f5cf4d59bbdb403 Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Fri, 13 Jun 2025 02:36:35 -0400 Subject: Fix misc memory leaks in C++ API --- firmwareninja.cpp | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'firmwareninja.cpp') diff --git a/firmwareninja.cpp b/firmwareninja.cpp index 1b159b4a..fef4af70 100644 --- a/firmwareninja.cpp +++ b/firmwareninja.cpp @@ -251,11 +251,11 @@ Ref 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; } -- cgit v1.3.1