diff options
Diffstat (limited to 'plugins/arm/v7')
| -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)  | 
