about summary refs log tree commit diff stats
path: root/miasm/analysis/data_flow.py
diff options
context:
space:
mode:
authorserpilliere <serpilliere@users.noreply.github.com>2021-09-20 07:39:40 +0200
committerGitHub <noreply@github.com>2021-09-20 07:39:40 +0200
commit5522eb059ad5fe2b5ef0194923b3b6c24d778946 (patch)
tree4c5d12e728b4a237333be7245cf73325582e5f6c /miasm/analysis/data_flow.py
parent9a36c6d7849335c83a9460fc558afb55ff0a2aa1 (diff)
parentf2c0c38b67b65e3f5309d358c59fcee9a501854d (diff)
downloadfocaccia-miasm-5522eb059ad5fe2b5ef0194923b3b6c24d778946.tar.gz
focaccia-miasm-5522eb059ad5fe2b5ef0194923b3b6c24d778946.zip
Merge pull request #1386 from serpilliere/fix_incomplete_ircfg_analysis
Fix incomplete ircfg analysis
Diffstat (limited to 'miasm/analysis/data_flow.py')
-rw-r--r--miasm/analysis/data_flow.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/miasm/analysis/data_flow.py b/miasm/analysis/data_flow.py
index ae44ed59..9274d9d6 100644
--- a/miasm/analysis/data_flow.py
+++ b/miasm/analysis/data_flow.py
@@ -1280,6 +1280,8 @@ def update_phi_with_deleted_edges(ircfg, edges_to_del):
     modified = False
     blocks = dict(ircfg.blocks)
     for loc_dst, loc_srcs in viewitems(phi_locs_to_srcs):
+        if loc_dst not in ircfg.blocks:
+            continue
         block = ircfg.blocks[loc_dst]
         if not irblock_has_phi(block):
             continue
@@ -1353,6 +1355,8 @@ def del_unused_edges(ircfg, heads):
     for src, dst in edges_to_del_1.union(edges_to_del_2):
         ircfg.del_edge(src, dst)
     for node in nodes_to_del:
+        if node not in ircfg.blocks:
+            continue
         block = ircfg.blocks[node]
         ircfg.del_node(node)
         del ircfg.blocks[node]