Skip to content

Commit 33bf710

Browse files
committed
engine: analyze: Add cases of conflicting flags to Problem List.
And skip processing such addresses, instead of throwing assert.
1 parent 7098cdd commit 33bf710

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

engine.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -850,9 +850,14 @@ def analyze(callback=lambda cnt:None):
850850
if analysis_current_func:
851851
if fl == ADDRESS_SPACE.CODE | ADDRESS_SPACE.FUNC:
852852
continue
853-
assert fl in (ADDRESS_SPACE.CODE, ADDRESS_SPACE.UNK)
853+
if fl not in (ADDRESS_SPACE.CODE, ADDRESS_SPACE.UNK):
854+
log.warn("Unexpected flags 0x%x at 0x%x while tracing code branch, skipping it", fl, ea)
855+
ADDRESS_SPACE.add_issue(ea, "Jump/flow into non-code")
856+
continue
854857
else:
855858
if fl != ADDRESS_SPACE.UNK:
859+
if fl != ADDRESS_SPACE.CODE:
860+
ADDRESS_SPACE.add_issue(ea, "Jump/flow into non-code")
856861
continue
857862
elif analisys_stack_calls:
858863
finish_func(analysis_current_func)

0 commit comments

Comments
 (0)