From 368407b09eba7c5d09689ac81eaadd1645820edd Mon Sep 17 00:00:00 2001 From: Alexander Khosrowshahi Date: Mon, 2 Jun 2025 17:35:28 -0400 Subject: Fix calls to BNFreeString in kernel cache API Amends calls to BNFreeString in kernel cache API that were causing `get_macho_header_for_address`, `get_macho_header_for_image`, `get_image_name_for_address`, and `get_name_for_address` to fail. Fixes https://github.com/Vector35/binaryninja-api/issues/6855 --- view/kernelcache/api/kernelcache.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'view/kernelcache/api/kernelcache.cpp') diff --git a/view/kernelcache/api/kernelcache.cpp b/view/kernelcache/api/kernelcache.cpp index 86cd8e0d..7a650660 100644 --- a/view/kernelcache/api/kernelcache.cpp +++ b/view/kernelcache/api/kernelcache.cpp @@ -20,10 +20,9 @@ namespace KernelCacheAPI { return BNKCViewFastGetImageCount(view->GetObject()); } - bool KernelCache::LoadImageWithInstallName(std::string installName) + bool KernelCache::LoadImageWithInstallName(const std::string& installName) { - char* str = BNAllocString(installName.c_str()); - return BNKCViewLoadImageWithInstallName(m_object, str); + return BNKCViewLoadImageWithInstallName(m_object, installName.c_str()); } bool KernelCache::LoadImageContainingAddress(uint64_t addr) @@ -161,10 +160,9 @@ namespace KernelCacheAPI { return result; } - std::optional KernelCache::GetMachOHeaderForImage(std::string name) + std::optional KernelCache::GetMachOHeaderForImage(const std::string& name) { - char* str = BNAllocString(name.c_str()); - char* outputStr = BNKCViewGetImageHeaderForName(m_object, str); + char* outputStr = BNKCViewGetImageHeaderForName(m_object, name.c_str()); if (outputStr == nullptr) return {}; std::string output = outputStr; -- cgit v1.3.1