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

Re: [Xen-devel] [PATCH 5/5] xenstat: Fix buffer over-run with new_domains being negative (again).



On 25/11/13 17:06, Ian Campbell wrote:
> On Mon, 2013-11-25 at 12:00 -0500, Konrad Rzeszutek Wilk wrote:
>> The git commit 1438d36f96e90d1116bebc6b3013634ca21c49c8
>> "xenstat: Fix buffer over-run with new_domains being negative."
>> fixed part of the problem, but it failed to do one more check.
>>
>> That is the if we don't exit out of the loop if the
>> xc_domain_getinfolist returns -1. This makes the check
>> by casting the unsigned int value to int as otherwise
>> the
>>      if (new_domains < 0)
>>
>> would never get executed (as unsigned int won't be negative).
>>
>> Fixes CID 1055740.
>>
>> CC: andrew.cooper3@xxxxxxxxxx
>> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
>> ---
>>  tools/xenstat/libxenstat/src/xenstat.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/xenstat/libxenstat/src/xenstat.c 
>> b/tools/xenstat/libxenstat/src/xenstat.c
>> index e5facb8..27d8e22 100644
>> --- a/tools/xenstat/libxenstat/src/xenstat.c
>> +++ b/tools/xenstat/libxenstat/src/xenstat.c
>> @@ -208,7 +208,7 @@ xenstat_node *xenstat_get_node(xenstat_handle * handle, 
>> unsigned int flags)
>>                                                  node->num_domains, 
>>                                                  DOMAIN_CHUNK_SIZE, 
>>                                                  domaininfo);
>> -            if (new_domains < 0)
>> +            if ((int)new_domains < 0)
> I expect that the right fix is to make new_domains the correct (signed)
> type, no?
>
> Ian.
>

xc_domain_getinfolist() is just as crazy as its partner in crime,
xc_domain_getinfo(), and takes an unsigned int "max_doms" and returns a
signed number of domains gotten, or -1 for certain failed hypercalls.

I might be inclined to introduce a signed rc to hold the return value
xc_domain_getinfolist(), check for a negative return before assigning to
new_domains and also check for an overflow of node->num_domains +
new_domains for the realloc.

~Andrew

_______________________________________________
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®.