diff options
Diffstat (limited to 'courgette/disassembler.cc')
-rw-r--r-- | courgette/disassembler.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/courgette/disassembler.cc b/courgette/disassembler.cc index 5514be9..103bbe0 100644 --- a/courgette/disassembler.cc +++ b/courgette/disassembler.cc @@ -13,6 +13,7 @@ #include "courgette/assembly_program.h" #include "courgette/courgette.h" +#include "courgette/disassembler_elf_32_x86.h" #include "courgette/disassembler_win32_x86.h" #include "courgette/encoded_program.h" @@ -30,8 +31,14 @@ Disassembler* DetectDisassembler(const void* buffer, size_t length) { disassembler = new DisassemblerWin32X86(buffer, length); if (disassembler->ParseHeader()) return disassembler; + else + delete disassembler; - delete disassembler; + disassembler = new DisassemblerElf32X86(buffer, length); + if (disassembler->ParseHeader()) + return disassembler; + else + delete disassembler; return NULL; } |