diff options
| author | Mason Reed <mason@vector35.com> | 2025-06-13 02:36:35 -0400 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2025-06-13 02:36:35 -0400 |
| commit | 0c34857925e6b0c220871f921f5cf4d59bbdb403 (patch) | |
| tree | 961df42cc54dbb3a2ebbcbf30abbdbf3930cb027 /firmwareninja.cpp | |
| parent | 5700131107640018205653472891110147818179 (diff) | |
Fix misc memory leaks in C++ API
Diffstat (limited to 'firmwareninja.cpp')
| -rw-r--r-- | firmwareninja.cpp | 31 |
1 files changed, 18 insertions, 13 deletions
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; } |
