From 9b3da06358881ab29e2f860aeb59d6aab50fb25e Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Wed, 22 Sep 2021 13:04:38 -0400 Subject: Fix bug with MediumLevelIL.get_var_uses --- python/mediumlevelil.py | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) (limited to 'python/mediumlevelil.py') diff --git a/python/mediumlevelil.py b/python/mediumlevelil.py index 44e94937..e7b852c2 100644 --- a/python/mediumlevelil.py +++ b/python/mediumlevelil.py @@ -2893,24 +2893,17 @@ class MediumLevelILFunction: return result 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() -- cgit v1.3.1