Juan Quintela <quint...@redhat.com> wrote: > "Dr. David Alan Gilbert" <dgilb...@redhat.com> wrote: >> * Juan Quintela (quint...@redhat.com) wrote: >>> 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); >>> + } >> >> qemu_file_set_error already checks for an existing error, so >> you don't need that check. > > ret could already be less than zero and qemu_file error not being set > yet. Problem found during testing. That is the reason that I have to > "improve" the previous patch. > > Later, Juan.
qemu_file_set_error() already do the check. I stand corrected. if ((ret < 0) || qemu_file_get_error(f) { qemu_file_set_error(f, ret); return ret; } sounds better? Thanks, Juan.