| Index: courgette/disassembler.cc
|
| diff --git a/courgette/disassembler.cc b/courgette/disassembler.cc
|
| index 5514be909248a1b6b9b7a3f1892295c9ee6f0388..103bbe014b82e5525b89c17ab8bb4fd833883b1c 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;
|
| }
|
|
|