diff options
Diffstat (limited to 'miasm2/expression/expression_helper.py')
| -rw-r--r-- | miasm2/expression/expression_helper.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/miasm2/expression/expression_helper.py b/miasm2/expression/expression_helper.py index c94bc353..825cad60 100644 --- a/miasm2/expression/expression_helper.py +++ b/miasm2/expression/expression_helper.py @@ -257,9 +257,13 @@ class Variables_Identifier(object): ## Build initial needs for var_id, var_expr in self._vars.iteritems(): + ### Handle corner cases while using Variable Identifier on an + ### already computed equation needs[var_id] = [var_name for var_name in var_expr.get_r(mem_read=True) - if self.is_var_identifier(var_name)] + if self.is_var_identifier(var_name) and \ + var_name in todo and \ + var_name != var_id] ## Build order list while todo: @@ -271,7 +275,6 @@ class Variables_Identifier(object): # A dependency is not met all_met = False break - if not all_met: continue |