You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
if (type_=="fake_return") or (src.addr+src.original_size==dst.addr):
For completely normal AIL nodes (ones converted from Vex and untouched), this is a sane check. However, in the case of AIL nodes that have been created, this check fails. Any of the DUPLICATING optimizations, can create new nodes:
Description
After debugging some code that flowed through
to_ail_supergraph
, it became clear that this line is causing problems:angr/angr/analyses/decompiler/utils.py
Line 301 in b0396c9
For completely normal AIL nodes (ones converted from Vex and untouched), this is a sane check. However, in the case of AIL nodes that have been created, this check fails. Any of the
DUPLICATING
optimizations, can create new nodes:angr/angr/analyses/decompiler/optimization_passes/cross_jump_reverter.py
Line 99 in b0396c9
At first, I thought you course just set
original_size=None
, and then do a special check into_ail_supergraph
, but this causes crashes elsewhere.In summary, angr is not positioned to handle AIL nodes that have either fake addresses or fake sizes. We need to fix this eventually.
The Fix
is_fake
, meaning the node was created.addr
or.original_size
and update them to no longer trust these valuesSteps to reproduce the bug
No response
Environment
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: