summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorBrandon Miller <brandon@vector35.com>2025-06-09 09:40:18 -0400
committerBrandon Miller <brandon@vector35.com>2025-06-09 09:43:50 -0400
commitc8f4346609f4b51474481d9e6b869076e5a96534 (patch)
treebe662b79367075b35e61b0712072f375f505a29f /python
parent6069b9db08041dffda12d37dd48c4b2cff2adea2 (diff)
More None checks when querying IL internal to API
Diffstat (limited to 'python')
-rw-r--r--python/basicblock.py12
-rw-r--r--python/function.py6
-rw-r--r--python/lineardisassembly.py4
3 files changed, 16 insertions, 6 deletions
diff --git a/python/basicblock.py b/python/basicblock.py
index b7182c7a..b5000a2f 100644
--- a/python/basicblock.py
+++ b/python/basicblock.py
@@ -252,19 +252,23 @@ class BasicBlock:
elif il_type == _function.FunctionGraphType.LiftedILFunctionGraph:
return func.lifted_il
elif il_type == _function.FunctionGraphType.LowLevelILSSAFormFunctionGraph:
- return func.low_level_il.ssa_form
+ func_llil = func.low_level_il
+ return func_llil.ssa_form if func_llil is not None else None
elif il_type == _function.FunctionGraphType.MediumLevelILFunctionGraph:
return func.medium_level_il
elif il_type == _function.FunctionGraphType.MediumLevelILSSAFormFunctionGraph:
- return func.medium_level_il.ssa_form
+ func_mlil = func.medium_level_il
+ return func_mlil.ssa_form if func_mlil is not None else None
elif il_type == _function.FunctionGraphType.MappedMediumLevelILFunctionGraph:
return func.mapped_medium_level_il
elif il_type == _function.FunctionGraphType.MappedMediumLevelILSSAFormFunctionGraph:
- return func.mapped_medium_level_il.ssa_form
+ func_mmlil = func.mapped_medium_level_il
+ return func_mmlil.ssa_form if func_mmlil is not None else None
elif il_type == _function.FunctionGraphType.HighLevelILFunctionGraph:
return func.high_level_il
elif il_type == _function.FunctionGraphType.HighLevelILSSAFormFunctionGraph:
- return func.high_level_il.ssa_form
+ func_hlil = func.high_level_il
+ return func_hlil.ssa_form if func_hlil is not None else None
elif il_type == _function.FunctionGraphType.HighLevelLanguageRepresentationFunctionGraph:
return func.high_level_il
else:
diff --git a/python/function.py b/python/function.py
index 8fa8a0e4..7d14c2bb 100644
--- a/python/function.py
+++ b/python/function.py
@@ -2959,7 +2959,11 @@ class Function:
# Special case: function parameters have index 0 and are defined at the start of the function
def_addr = self.start
else:
- var_defs = self.mlil.get_var_definitions(var)
+ func_mlil = self.mlil
+ if func_mlil is None:
+ raise ValueError("Could not get definition for Variable")
+
+ var_defs = func_mlil.get_var_definitions(var)
if var_defs is None:
raise ValueError("Could not get definition for Variable")
diff --git a/python/lineardisassembly.py b/python/lineardisassembly.py
index e6b684d3..fb981ba1 100644
--- a/python/lineardisassembly.py
+++ b/python/lineardisassembly.py
@@ -59,7 +59,9 @@ class LinearDisassemblyLine:
if obj.identifier.name == "HLIL Function Body":
il_func = function.hlil
elif obj.identifier.name == "HLIL SSA Function Body":
- il_func = function.hlil.ssa_form
+ func_hlil = function.hlil
+ if func_hlil is not None:
+ il_func = func_hlil.ssa_form
elif obj.identifier.name == "Language Representation Function Body":
il_func = function.hlil