diff --git a/cpu.c b/cpu.c index 84162d05f8..a96f8cee34 100644 --- a/cpu.c +++ b/cpu.c @@ -83,6 +83,7 @@ int libafl_qemu_read_reg(int reg, uint8_t* val) CPUClass *cc = CPU_GET_CLASS(cpu); if (reg < cc->gdb_num_core_regs) { + g_byte_array_set_size(libafl_qemu_mem_buf, 0); int len = cc->gdb_read_register(cpu, libafl_qemu_mem_buf, reg); if (len > 0) { memcpy(val, libafl_qemu_mem_buf->data, len); diff --git a/linux-user/main.c b/linux-user/main.c index 62c3de278f..284d3ea764 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -627,11 +627,18 @@ static int parse_args(int argc, char **argv) //// --- Begin LibAFL code --- +uint64_t libafl_load_addr(void); int libafl_qemu_main(void); int libafl_qemu_run(void); static CPUArchState *libafl_qemu_env; +struct image_info libafl_image_info; + +uint64_t libafl_load_addr(void) { + return libafl_image_info.load_addr; +} + __attribute__((weak)) int libafl_qemu_main(void) { libafl_qemu_run(); @@ -649,7 +656,8 @@ int libafl_qemu_run(void) int main(int argc, char **argv, char **envp) { struct target_pt_regs regs1, *regs = ®s1; - struct image_info info1, *info = &info1; + //struct image_info info1, *info = &info1; + struct image_info *info = &libafl_image_info; struct linux_binprm bprm; TaskState *ts; CPUArchState *env;