If there is an error while loading a field, we should stop reading and not continue with the rest of fields. And we should also set an error in qemu_file.
Signed-off-by: Juan Quintela <quint...@redhat.com> --- vmstate.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vmstate.c b/vmstate.c index bfa34cc..bcf1cde 100644 --- a/vmstate.c +++ b/vmstate.c @@ -74,7 +74,13 @@ int vmstate_load_state(QEMUFile *f, const VMStateDescription *vmsd, ret = field->info->get(f, addr, size); } + if (ret >= 0) { + ret = qemu_file_get_error(f); + } if (ret < 0) { + if (!qemu_file_get_error(f)) { + qemu_file_set_error(f, ret); + } trace_vmstate_load_field_error(field->name, ret); return ret; } -- 1.9.0