On 03/20/2014 11:52 AM, Eric Blake wrote:
> On 03/20/2014 11:28 AM, Cole Robinson wrote:
>> Right now, on failure, libvirt.py doesn't raise an exception and just
>> returns -1 to the user.
>> ---
>>  libvirt-override.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libvirt-override.c b/libvirt-override.c
>> index 7f746ed..9fed299 100644
>> --- a/libvirt-override.c
>> +++ b/libvirt-override.c
>> @@ -2326,7 +2326,7 @@ libvirt_virConnectGetCPUModelNames(PyObject *self 
>> ATTRIBUTE_UNUSED,
>>      LIBVIRT_END_ALLOW_THREADS;
>>  
>>      if (c_retval == -1)
>> -        return VIR_PY_INT_FAIL;
>> +        return VIR_PY_NONE;
>>  
> 
> Incomplete.  The error: label needs the same treatment.
> 
> ACK with that fix.

Actually, I take that back.  We need a v2.  If the error: label is
reached, returning VIR_PY_INT_FAIL is wrong; but so is returning
VIR_PY_NONE.  We _want_ to return NULL in that case, because the error
label is called only after a python failure (PyList_New or
libvirt_constcharPtrWrap, which generally means OOM) - and python
failures are distinguished by returning NULL (reserving -1/None for
libvirt failures).

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to