-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Pattern independent restructuring] 'NoneType' object is not iterable #213
Comments
Again as in #189, Wasn't the fix, that the networkx error should not result in the first place? |
I found the transformation after which we can not sort the children anymore. We do an "invalid" transformation in dewolf/decompiler/pipeline/controlflowanalysis/restructuring_commons/ast_processor.py Line 146 in bdb0eac
More precisely, in this function we search for a condition node cn with two branches tb and fb , where exactly one ends with a return statement. For simplicity, let the true branch tb end with a return. Then we extract the false-branch fb from the condition node and make sure that the condition node, now only having the true branch, is executed before the false-branch child. We do this by updating the reachability of the code-nodes.In general, this is no problem, because nodes with opposite conditions can not reach each other. However, in this sample, all code nodes that are contained in the false-branch reach the once in the true-branch, thus after the extraction, we add that all code nodes contained in the true-branch reach the once in the false-branch. One solution would be to remove the reachability between the code-nodes of the true and false branch of a condition node. These should never be able to reach each other. However, something like this should not happen, and it happens in this sample only because the SSA-form seems to be incorrect. The condition For reference, the initial cfg after the lifting and the cfg before the restructuring How do we want to solve this? |
|
duplicate with minimal sample #337 |
What happened?
How to reproduce?
Decompile refsutil at 0x1400ba588.
Affected Binary Ninja Version(s)
3.3.3996
The text was updated successfully, but these errors were encountered: