summaryrefslogtreecommitdiff
path: root/view/kernelcache/api/python
diff options
context:
space:
mode:
authorAlexander Khosrowshahi <alexk@vector35.com>2025-06-02 17:35:28 -0400
committerAlexander Taylor <alex@vector35.com>2025-06-04 14:13:45 -0400
commit368407b09eba7c5d09689ac81eaadd1645820edd (patch)
treedef58a37155744cf7ac2427a3f143efb807d1e12 /view/kernelcache/api/python
parent9c8d4eac3dadf6273b34ba193c219de9283285b3 (diff)
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
Diffstat (limited to 'view/kernelcache/api/python')
-rw-r--r--view/kernelcache/api/python/_kernelcachecore_template.py1
-rw-r--r--view/kernelcache/api/python/kernelcache.py15
2 files changed, 4 insertions, 12 deletions
diff --git a/view/kernelcache/api/python/_kernelcachecore_template.py b/view/kernelcache/api/python/_kernelcachecore_template.py
index ecbcb35d..cac7eb42 100644
--- a/view/kernelcache/api/python/_kernelcachecore_template.py
+++ b/view/kernelcache/api/python/_kernelcachecore_template.py
@@ -8,6 +8,7 @@ import platform
core = None
core_platform = platform.system()
+from binaryninja._binaryninjacore import BNFreeString, BNFreeStringList, BNAllocString
from binaryninja import Settings
if Settings().get_bool("corePlugins.view.kernelCache"):
from binaryninja._binaryninjacore import BNGetBundledPluginDirectory
diff --git a/view/kernelcache/api/python/kernelcache.py b/view/kernelcache/api/python/kernelcache.py
index 2148f2a8..9425ef9c 100644
--- a/view/kernelcache/api/python/kernelcache.py
+++ b/view/kernelcache/api/python/kernelcache.py
@@ -207,15 +207,10 @@ class KernelCache:
"""
Return a KernelCacheMachOHeader for the image with the given install name.
"""
- s = BNAllocString(name)
- outputStr = kccore.BNKCViewGetImageHeaderForName(self.handle, s)
+ outputStr = kccore.BNKCViewGetImageHeaderForName(self.handle, name)
if outputStr is None:
return None
- output = outputStr
- BNFreeString(outputStr)
- if output == "":
- return None
- return KernelCacheMachOHeader.LoadFromString(output)
+ return KernelCacheMachOHeader.LoadFromString(outputStr)
def get_macho_header_for_address(self, address: int):
"""
@@ -224,11 +219,7 @@ class KernelCache:
outputStr = kccore.BNKCViewGetImageHeaderForAddress(self.handle, address)
if outputStr is None:
return None
- output = outputStr
- BNFreeString(outputStr)
- if output == "":
- return None
- return KernelCacheMachOHeader.LoadFromString(output)
+ return KernelCacheMachOHeader.LoadFromString(outputStr)
@property
def state(self):