[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCHv2 09/15] xml: use better types for memory values



On 03/06/2012 09:34 AM, Peter Krempa wrote:
> On 03/06/2012 01:34 AM, Eric Blake wrote:
>> Using 'unsigned long' for memory values is risky on 32-bit platforms,
>> as a PAE guest can have more than 4GiB memory.  Our API is
>> (unfortunately) locked at 'unsigned long' and a scale of 1024, but
>> the rest of our system should consistently use 64-bit values,
>> especially since the previous patch centralized overflow checking.
>>

>> +++ b/src/xenxs/xen_sxpr.c
>> @@ -1101,9 +1133,15 @@ cleanup:
>>
>>
>>   static
>> -int xenXMConfigSetInt(virConfPtr conf, const char *setting, long l) {
>> +int xenXMConfigSetInt(virConfPtr conf, const char *setting, long long
>> l) {
>>       virConfValuePtr value = NULL;
>>
>> +    if ((long) l != l) {
>> +        XENXS_ERROR(VIR_ERR_INTERNAL_ERROR,
> 
> I suppose the VIR_ERR_INTERNAL_ERROR is intentional.

Yes - the libvirt.c interface takes 'unsigned long', and widening that
to long long should be reversible so we should never hit this error.

> 
>> +                    _("integer overflow in trying to store %lld to %s"),
>> +                    l, setting);
>> +        return -1;
>> +    }
>>       if (VIR_ALLOC(value)<  0) {
>>           virReportOOMError();
>>           return -1;
> 
> ACK,
> 
> Peter
> 

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

Attachment: signature.asc
Description: OpenPGP digital signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]