"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.


>
> Dve
>
>>                      trace_vmstate_load_field_error(field->name, ret);
>>                      return ret;
>>                  }
>> -- 
>> 1.9.0
>> 
>> 
> --
> Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK

Reply via email to