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

Re: [Xen-devel] [PATCH] xen/xenoprof: avoid division by 0



>>> On 14.02.13 at 17:50, Tim Deegan <tim@xxxxxxx> wrote:
> At 16:34 +0000 on 14 Feb (1360859678), Jan Beulich wrote:
>> >>> On 14.02.13 at 17:16, Tim Deegan <tim@xxxxxxx> wrote:
>> > --- a/xen/common/xenoprof.c        Thu Feb 14 15:46:56 2013 +0000
>> > +++ b/xen/common/xenoprof.c        Thu Feb 14 16:16:17 2013 +0000
>> > @@ -225,7 +225,7 @@ static int alloc_xenoprof_struct(
>> >  #endif
>> >  
>> >      /* reduce max_samples if necessary to limit pages allocated */
>> > -    max_bufsize = (MAX_OPROF_SHARED_PAGES * PAGE_SIZE) / nvcpu;
>> > +    max_bufsize = (MAX_OPROF_SHARED_PAGES * PAGE_SIZE) / (nvcpu ?: 1);
>> >      max_max_samples = ( (max_bufsize - bufsize) / i ) + 1;
>> >      if ( (unsigned)max_samples > max_max_samples )
>> >          max_samples = max_max_samples;
>> 
>> I think the function would better return an error in that case. After
>> all there's little point in setting up anything when we for sure don't
>> know how many vCPU-s a domain is going to have.
> 
> Grand so:
> 
> # HG changeset patch
> # Parent 5a84cc531072378e6e5ff89b4c0e9a35000dc56f
> xen/xenoprof: avoid division by 0.
> 
> Signed-off-by: Tim Deegan <tim@xxxxxxx>
> 
> diff -r 5a84cc531072 xen/common/xenoprof.c
> --- a/xen/common/xenoprof.c   Thu Feb 14 15:46:56 2013 +0000
> +++ b/xen/common/xenoprof.c   Thu Feb 14 16:48:49 2013 +0000
> @@ -213,6 +213,9 @@ static int alloc_xenoprof_struct(
>      for_each_vcpu ( d, v )
>          nvcpu++;
>  
> +    if ( !nvcpu )
> +        return -EINVAL;

Missing some cleanup here? Or move the preceding loop and this
addition to the top of the function?

Jan

> +
>      bufsize = sizeof(struct xenoprof_buf);
>      i = sizeof(struct event_log);
>  #ifdef CONFIG_COMPAT




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