diff options
| author | Brian Potchik <brian@vector35.com> | 2025-10-28 14:52:13 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2025-10-28 14:52:13 -0400 |
| commit | 5edc5e4b198eeaac98c1fb3b4a1a7849d357d06d (patch) | |
| tree | 6cc58fc666376a3fa99be462894da120e17c8614 /python/transform.py | |
| parent | 8d91951e428ed7e1878a2e3a362552f0da79d6df (diff) | |
Fix crash Python bindings for Transform API.
Diffstat (limited to 'python/transform.py')
| -rw-r--r-- | python/transform.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/python/transform.py b/python/transform.py index 3168982d..8e20d04c 100644 --- a/python/transform.py +++ b/python/transform.py @@ -37,11 +37,14 @@ class _TransformMetaClass(type): count = ctypes.c_ulonglong() xforms = core.BNGetTransformTypeList(count) assert xforms is not None, "core.BNGetTransformTypeList returned None" - try: - for i in range(0, count.value): - yield Transform(xforms[i]) - finally: - core.BNFreeTransformTypeList(xforms) + result = [] + for i in range(0, count.value): + ptr_addr = ctypes.cast(xforms[i], ctypes.c_void_p).value + handle = ctypes.cast(ptr_addr, type(xforms[i])) + result.append(Transform(handle)) + core.BNFreeTransformTypeList(xforms) + for xform in result: + yield xform def __getitem__(cls, name): binaryninja._init_plugins() |
