diff options
| author | Cyrille Bagard <nocbos@gmail.com> | 2015-05-05 12:30:14 (GMT) | 
|---|---|---|
| committer | Cyrille Bagard <nocbos@gmail.com> | 2015-05-05 12:30:14 (GMT) | 
| commit | 7806ff93441318ad1f724f0b586383b61c4af859 (patch) | |
| tree | cf74316115480012c51836f69fce8e02971cbf1e /src/analysis/disass/macro.c | |
| parent | 4d0451c1153eb572f5ab0833c0c0911dfdc5f11a (diff) | |
Fixed a bug when creating natural execution flows.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@526 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/disass/macro.c')
| -rw-r--r-- | src/analysis/disass/macro.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/src/analysis/disass/macro.c b/src/analysis/disass/macro.c index 9527457..b478c74 100644 --- a/src/analysis/disass/macro.c +++ b/src/analysis/disass/macro.c @@ -1276,8 +1276,13 @@ static GInstrBlock *build_instruction_blocks(GArchInstruction *instrs, code_cove                  }                      DELAYED_BLOCK_ADDING(result, result_cached, block); -                    range = g_arch_instruction_get_range(iter); -                    compute_mrange_end_addr(range, &next_addr); +                    /** +                     * La prochaine adresse d'analyse est celle visée par l'instruction ! +                     * Pour les sauts naturels, ça ne change rien ; ce n'est pas le cas +                     * pour les sauts explicites. +                     */ +                    range = g_arch_instruction_get_range(dests[i]); +                    copy_vmpa(&next_addr, get_mrange_addr(range));                      first = NULL; | 
