[libvirt] [PATCH] Use unsigned long in cmdSetmem.

Laine Stump laine at laine.org
Mon Jul 19 23:59:25 UTC 2010


  On 07/19/2010 03:24 PM, Chris Lalancette wrote:
> On 07/08/10 - 11:39:07AM, Chris Lalancette wrote:
>> The virsh command "setmem" takes as input a number that
>> should represent an unsigned long number of kilobytes.  Fix
>> cmdSetmem to properly parse this as an unsigned long instead
>> of an int.
> ping, any reviews here?

ACK.

>> Signed-off-by: Chris Lalancette<clalance at redhat.com>
>> ---
>>   tools/virsh.c |   30 ++++++++++++++++++++++++++----
>>   1 files changed, 26 insertions(+), 4 deletions(-)
>>
>> diff --git a/tools/virsh.c b/tools/virsh.c
>> index 551e97b..63816dc 100644
>> --- a/tools/virsh.c
>> +++ b/tools/virsh.c
>> @@ -223,6 +223,8 @@ static int vshCmddefHelp(vshControl *ctl, const char *name);
>>
>>   static vshCmdOpt *vshCommandOpt(const vshCmd *cmd, const char *name);
>>   static int vshCommandOptInt(const vshCmd *cmd, const char *name, int *found);
>> +static unsigned long vshCommandOptUL(const vshCmd *cmd, const char *name,
>> +                                     int *found);
>>   static char *vshCommandOptString(const vshCmd *cmd, const char *name,
>>                                    int *found);
>>   static long long vshCommandOptLongLong(const vshCmd *cmd, const char *name,
>> @@ -2534,7 +2536,7 @@ cmdSetmem(vshControl *ctl, const vshCmd *cmd)
>>   {
>>       virDomainPtr dom;
>>       virDomainInfo info;
>> -    int kilobytes;
>> +    unsigned long kilobytes;
>>       int ret = TRUE;
>>
>>       if (!vshConnectionUsability(ctl, ctl->conn))
>> @@ -2543,10 +2545,10 @@ cmdSetmem(vshControl *ctl, const vshCmd *cmd)
>>       if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
>>           return FALSE;
>>
>> -    kilobytes = vshCommandOptInt(cmd, "kilobytes",&kilobytes);
>> +    kilobytes = vshCommandOptUL(cmd, "kilobytes", NULL);
>>       if (kilobytes<= 0) {
>>           virDomainFree(dom);
>> -        vshError(ctl, _("Invalid value of %d for memory size"), kilobytes);
>> +        vshError(ctl, _("Invalid value of %lu for memory size"), kilobytes);
>>           return FALSE;
>>       }
>>
>> @@ -2558,7 +2560,7 @@ cmdSetmem(vshControl *ctl, const vshCmd *cmd)
>>
>>       if (kilobytes>  info.maxMem) {
>>           virDomainFree(dom);
>> -        vshError(ctl, _("Requested memory size %d kb is larger than maximum of %lu kb"),
>> +        vshError(ctl, _("Requested memory size %lu kb is larger than maximum of %lu kb"),
>>                    kilobytes, info.maxMem);
>>           return FALSE;
>>       }
>> @@ -9628,6 +9630,26 @@ vshCommandOptInt(const vshCmd *cmd, const char *name, int *found)
>>       return res;
>>   }
>>
>> +static unsigned long
>> +vshCommandOptUL(const vshCmd *cmd, const char *name, int *found)
>> +{
>> +    vshCmdOpt *arg = vshCommandOpt(cmd, name);
>> +    unsigned long res = 0;
>> +    int num_found = FALSE;
>> +    char *end_p = NULL;
>> +
>> +    if ((arg != NULL)&&  (arg->data != NULL)) {
>> +        res = strtoul(arg->data,&end_p, 10);
>> +        if ((arg->data == end_p) || (*end_p!= 0))
>> +            num_found = FALSE;
>> +        else
>> +            num_found = TRUE;
>> +    }
>> +    if (found)
>> +        *found = num_found;
>> +    return res;
>> +}
>> +
>>   /*
>>    * Returns option as STRING
>>    */
>> -- 
>> 1.7.1.1
>>
>> --
>> libvir-list mailing list
>> libvir-list at redhat.com
>> https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list