Find/Avoid conflict example
Find/Avoid conflict example

There is a bug in angr/angr/exploration_techniques/explorer.py filter function.
Find condition is checked before avoid condition at the run level. Thus, if avoid and find addresses are in the same run the path is accepted even if the avoid address is reached before the find address; they do not need to be in the same basic block, consider:
A
if (...) then{ B }
else{ C }
D

If one wants to reach D while avoiding C, AC would be a valid path, because run C is composed of the basic blocks C (avoid) and D (find).
In broken_FindAvoidConflict.py, we look for a path avoiding a failure branch in an if-then-else statement, it should not appear in any of the found paths.

tyb0807/angr,schieb/angr,angr/angr,chubbymaggie/angr,chubbymaggie/angr,f-prettyland/angr,axt/angr,axt/angr,f-prettyland/angr,axt/angr,schieb/angr,f-prettyland/angr,iamahuman/angr,schieb/angr,angr/angr,tyb0807/angr,tyb0807/angr,chubbymaggie/angr,iamahuman/angr,angr/angr,iamahuman/angr