summaryrefslogtreecommitdiff
path: root/src/analysis
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-01-22 17:21:43 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-01-22 17:21:43 (GMT)
commitad3bf849178921ead3bbbd3ba84f4b9405f69253 (patch)
tree97b3d91a3f8771207fff873f2afa75a2b39d01db /src/analysis
parent93463ae02aa643d6370c7ed5bf61a815949b0d41 (diff)
Updated virtual addresses when filling the gap between two binary areas.
Diffstat (limited to 'src/analysis')
-rw-r--r--src/analysis/disass/area.c19
1 files changed, 19 insertions, 0 deletions
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)