diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/arm/v7/fetch.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/plugins/arm/v7/fetch.c b/plugins/arm/v7/fetch.c index 0c15dcd..0aa0c6c 100644 --- a/plugins/arm/v7/fetch.c +++ b/plugins/arm/v7/fetch.c @@ -377,7 +377,9 @@ void help_fetching_with_instruction_ldr_literal_with_orig(GArchInstruction *inst off_t val_offset; /* Position de valeur à lire */ vmpa2t loaded_addr; /* Adresse de valeur chargée */ mrange_t loaded_range; /* Espace de chargement */ + GBinFormat *base; /* version parente du format */ GBinContent *content; /* Contenu binaire à relire */ + SourceEndian endian; /* Boutisme du format parent */ uint32_t target; /* Adresse virtuelle visée */ vmpa2t pos; /* Tête de lecture de valeur */ VMPA_BUFFER(loc); /* Adresse au format texte */ @@ -452,11 +454,16 @@ void help_fetching_with_instruction_ldr_literal_with_orig(GArchInstruction *inst /* Lecture de la valeur vers laquelle renvoyer */ - content = g_binary_format_get_content(G_BIN_FORMAT(format)); + base = G_BIN_FORMAT(format); + + content = g_binary_format_get_content(base); + + endian = g_binary_format_get_endianness(base); copy_vmpa(&pos, &loaded_addr); - ret = g_binary_content_read_u32(content, &pos, SRE_LITTLE /* FIXME */, &target); + ret = g_binary_content_read_u32(content, &pos, endian, &target); + g_object_unref(G_OBJECT(content)); if (!ret) |