diff options
| author | Alexander Khosrowshahi <alexk@vector35.com> | 2025-06-02 17:35:28 -0400 |
|---|---|---|
| committer | Alexander Taylor <alex@vector35.com> | 2025-06-04 14:13:45 -0400 |
| commit | 368407b09eba7c5d09689ac81eaadd1645820edd (patch) | |
| tree | def58a37155744cf7ac2427a3f143efb807d1e12 /view/kernelcache/api/python | |
| parent | 9c8d4eac3dadf6273b34ba193c219de9283285b3 (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.py | 1 | ||||
| -rw-r--r-- | view/kernelcache/api/python/kernelcache.py | 15 |
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): |
