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

Re: [Xen-devel] [PATCH] sysctl: Don't overwrite array size variable when it is set on error earlier



>>> On 25.03.15 at 18:12, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 25/03/15 17:09, Boris Ostrovsky wrote:
>> When querying CPU topology, if caller-provided array size is smaller than
>> number of online CPUs then, in addition to returning -ENOBUFS, sysctl is
>> expected to provide back this number. However, this value, stored in 'i',
>> is overwritten in the subsequent loop's control statement.
>>
>> Make sure we don't do this by converting the loop to 'while'.
>>
>> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
>> Reported-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
>> ---
>>   xen/common/sysctl.c |    6 +++++-
>>   1 files changed, 5 insertions(+), 1 deletions(-)
>>
>> diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
>> index a8c629f..b83d230 100644
>> --- a/xen/common/sysctl.c
>> +++ b/xen/common/sysctl.c
>> @@ -338,8 +338,10 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) 
> u_sysctl)
>>                   ret = -ENOBUFS;
>>                   i = num_cpus;
>>               }
>> +            else
>> +                i = 0;
>>   
>> -            for ( i = 0; i < num_cpus; i++ )
>> +            while ( i < num_cpus )
> 
> This would be fine to keep as "for ( ; i < num_cpus; i++)", and helps 
> avoid an issue if someone introduces a continue; in the future.

And that's also what I've been intending to change it to before
committing.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.