From bd1f40e27ee2360b477bfd63969363100dd8cb97 Mon Sep 17 00:00:00 2001 From: Andrea Fioraldi Date: Fri, 2 Jun 2023 16:09:33 +0200 Subject: [PATCH] Fix device snapshots --- libafl_extras/syx-snapshot/device-save.c | 10 ---------- migration/savevm.c | 18 ++++++++---------- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/libafl_extras/syx-snapshot/device-save.c b/libafl_extras/syx-snapshot/device-save.c index 24916e59da..637ec996a7 100644 --- a/libafl_extras/syx-snapshot/device-save.c +++ b/libafl_extras/syx-snapshot/device-save.c @@ -36,28 +36,18 @@ device_save_state_t* device_save_all(void) { if (se->is_ram) { continue; } - if ((!se->ops || !se->ops->save_state) && !se->vmsd) { - continue; - } - if (se->vmsd && !vmstate_save_needed(se->vmsd, se->opaque)) { - continue; - } if (!strcmp(se->idstr, "globalstate")) { continue; } // SYX_PRINTF("Saving section %s...\n", se->idstr); - save_section_header(f, se, QEMU_VM_SECTION_FULL); - ret = vmstate_save(f, se, NULL); if (ret) { SYX_PRINTF("Device save all error: %d\n", ret); abort(); } - - save_section_footer(f, se); } printf("\n"); diff --git a/migration/savevm.c b/migration/savevm.c index a24e4353c6..b92a0b3d1e 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -914,18 +914,10 @@ static void vmstate_save_old_style(QEMUFile *f, SaveStateEntry *se, } } -//// --- Begin LibAFL code --- - -void save_section_header(QEMUFile *f, SaveStateEntry *se, uint8_t section_type); -void save_section_footer(QEMUFile *f, SaveStateEntry *se); -int vmstate_save(QEMUFile *f, SaveStateEntry *se, JSONWriter *vmdesc); - -//// --- End LibAFL code --- - /* * Write the header for device section (QEMU_VM_SECTION START/END/PART/FULL) */ -/* static */ void save_section_header(QEMUFile *f, SaveStateEntry *se, +static void save_section_header(QEMUFile *f, SaveStateEntry *se, uint8_t section_type) { qemu_put_byte(f, section_type); @@ -947,7 +939,7 @@ int vmstate_save(QEMUFile *f, SaveStateEntry *se, JSONWriter *vmdesc); * Write a footer onto device sections that catches cases misformatted device * sections. */ -/* static */ void save_section_footer(QEMUFile *f, SaveStateEntry *se) +static void save_section_footer(QEMUFile *f, SaveStateEntry *se) { if (migrate_get_current()->send_section_footer) { qemu_put_byte(f, QEMU_VM_SECTION_FOOTER); @@ -955,6 +947,12 @@ int vmstate_save(QEMUFile *f, SaveStateEntry *se, JSONWriter *vmdesc); } } +//// --- Begin LibAFL code --- + +int vmstate_save(QEMUFile *f, SaveStateEntry *se, JSONWriter *vmdesc); + +//// --- End LibAFL code --- + /* static */ int vmstate_save(QEMUFile *f, SaveStateEntry *se, JSONWriter *vmdesc) { int ret;