reassembler: Fix addition type error in address calculation #4443
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When an instruction contains an operand that is neither a memory nor an immediate operand (e.g. a floating-point operand) then
operand_offset
is set toNone
:angr/angr/analyses/reassembler.py
Lines 726 to 733 in b0d0995
This causes a type error when calculating the address in
register_instruction_reference
:angr/angr/analyses/reassembler.py
Line 1980 in b0d0995
I ran into this issue while packaging angr for Guix where
test_ln_gcc_O2
fails because of this:It seems to me that this regression was introduced in #1739, it is presently unclear to me why this doesn't fail on the CI. Looking at the aforementioned pull request, it seems to me that it was intended to use a zero offset for these instructions. This commit changes the implementation accordingly, thereby fixing the aforementioned test failure for me.