falconre / falcon

Binary Analysis Framework in Rust
Apache License 2.0
549 stars 47 forks source link

graph: Correctly handle self loops in remove_vertex #88

Closed emmanuel099 closed 4 years ago

emmanuel099 commented 4 years ago

Self loops cause double-remove of edges because in this case both, successor and predecessor, are equal to index and thus the sequence of edges that deal with the removed vertex contains edge (index, index) twice.

This problem can be avoided if we use set semantics instead.