summaryrefslogtreecommitdiff
path: root/python/mediumlevelil.py
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2021-09-22 13:04:38 -0400
committerPeter LaFosse <peter@vector35.com>2021-09-22 13:04:38 -0400
commit9b3da06358881ab29e2f860aeb59d6aab50fb25e (patch)
tree3140d728dec0395c17b376a6265855a821fa53e9 /python/mediumlevelil.py
parente9a35074bb068e4d71d0f60c520128b245edac48 (diff)
Fix bug with MediumLevelIL.get_var_uses
Diffstat (limited to 'python/mediumlevelil.py')
-rw-r--r--python/mediumlevelil.py23
1 files changed, 8 insertions, 15 deletions
diff --git a/python/mediumlevelil.py b/python/mediumlevelil.py
index 44e94937..e7b852c2 100644
--- a/python/mediumlevelil.py
+++ b/python/mediumlevelil.py
@@ -2895,22 +2895,15 @@ class MediumLevelILFunction:
def get_var_uses(self, var:'variable.Variable') -> List[MediumLevelILInstruction]:
count = ctypes.c_ulonglong()
var_data = var.to_BNVariable()
- instrs = core.BNGetMediumLevelILVariableDefinitions(self.handle, var_data, count)
- assert instrs is not None, "core.BNGetMediumLevelILVariableDefinitions returned None"
- result = []
- for i in range(0, count.value):
- result.append(self[instrs[i]])
- core.BNFreeILInstructionList(instrs)
- return result
-
- count = ctypes.c_ulonglong()
- var_data = var.to_BNVariable()
instrs = core.BNGetMediumLevelILVariableUses(self.handle, var_data, count)
- result = []
- for i in range(0, count.value):
- result.append(self[instrs[i]])
- core.BNFreeILInstructionList(instrs)
- return result
+ assert instrs is not None, "core.BNGetMediumLevelILVariableUses returned None"
+ try:
+ result = []
+ for i in range(0, count.value):
+ result.append(self[instrs[i]])
+ return result
+ finally:
+ core.BNFreeILInstructionList(instrs)
def get_ssa_var_value(self, ssa_var:SSAVariable) -> 'variable.RegisterValue':
var_data = ssa_var.var.to_BNVariable()