summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--src/analysis/disass/area.c19
2 files changed, 24 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 9edebd6..0c3d3b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+17-01-22 Cyrille Bagard <nocbos@gmail.com>
+
+ * src/analysis/disass/area.c:
+ Update virtual addresses when filling the gap between two binary areas.
+
17-01-20 Cyrille Bagard <nocbos@gmail.com>
* src/analysis/disass/disassembler.c:
diff --git a/src/analysis/disass/area.c b/src/analysis/disass/area.c
index 389dd75..8da8b60 100644
--- a/src/analysis/disass/area.c
+++ b/src/analysis/disass/area.c
@@ -1262,6 +1262,25 @@ static void g_area_collector_do_compute(GAreaCollector *collector, GtkStatusStac
}
+ else
+ {
+ /**
+ * La comparaison entre les bordures se réalise selon les positions
+ * physiques renseignées.
+ *
+ * Aussi, même dans le cas d'une jointure sans espace, il se peut que
+ * la transition concerne deux zones aux adresses virtuelles non
+ * consécutives.
+ *
+ * Comme "old" est mise à jour pour devenir le point de départ de
+ * la zone suivante, on se doit de même à jour les deux positions :
+ * physique et virtuelle.
+ */
+
+ copy_vmpa(old, new);
+
+ }
+
}
bool build_area_from_portion(GBinPortion *portion, GBinPortion *parent, BinaryPortionVisit visit, void *unused)