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

Re: [Xen-devel] [PATCH] libxc: check in xc_get_tot_pages() that the proper domain is reported



On 02/12/14 15:18, Vitaly Kuznetsov wrote:
> XEN_DOMCTL_getdomaininfo, which is being used by xc_domain_getinfo(), has
> strange interface: it reports first domain which has domid >= requested domid
> so all callers are supposed to check that the proper domain(s) was queried
> by checking domid. xc_get_tot_pages() doesn't do that. In case the requested
> domain was destroyed it will report first domain with domid > requested domid
> which is apparently misleading as there is no way xc_get_tot_pages() callers
> can figure out that they got tot_pages for some other domain.
>
> Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>

Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

CCing Konrad as this really should get a 4.5 release ack.  It is a
straight bugfix.

> ---
>  tools/libxc/xc_private.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/tools/libxc/xc_private.c b/tools/libxc/xc_private.c
> index 1c214dd..e2441ad 100644
> --- a/tools/libxc/xc_private.c
> +++ b/tools/libxc/xc_private.c
> @@ -613,8 +613,10 @@ int xc_get_pfn_list(xc_interface *xch,
>  long xc_get_tot_pages(xc_interface *xch, uint32_t domid)
>  {
>      xc_dominfo_t info;
> -    return (xc_domain_getinfo(xch, domid, 1, &info) != 1) ?
> -        -1 : info.nr_pages;
> +    if ( (xc_domain_getinfo(xch, domid, 1, &info) != 1) ||
> +         (info.domid != domid) )
> +        return -1;
> +    return info.nr_pages;
>  }
>  
>  int xc_copy_to_domain_page(xc_interface *xch,


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