[libvirt] [PATCH] error: preserve errno when saving last error

Eric Blake eblake at redhat.com
Thu Jul 21 13:40:34 UTC 2011


On 07/20/2011 07:30 PM, Laine Stump wrote:
> On 07/20/2011 07:15 PM, Eric Blake wrote:
>> It is common to see the sequence:
>>
>> virErrorPtr save_err = virSaveLastError();
>> // do cleanup
>> virSetError(save_err);
>> virFreeError(save_err);
>>
>> on cleanup paths. But for functions where it is desirable to
>> return the errno that caused failure, this sequence can clobber
>> that errno. virFreeError was already safe; this makes the other
>> two functions in the sequence safe as well, assuming all goes
>> well (on OOM, errno will be clobbered, but then again, save_err
>> won't reflect the real error that happened, so you are no longer
>> preserving the real situation - that's life with OOM).
>>
>> * src/util/virterror.c (virSaveLastError, virSetError): Preserve
>> errno.
>> ---
>
> ACK.

Thanks; pushed.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org




More information about the libvir-list mailing list