From mboxrd@z Thu Jan 1 00:00:00 1970 From: Don Slutz Subject: Re: [PATCH] libxc: check in xc_get_tot_pages() that the proper domain is reported Date: Tue, 02 Dec 2014 10:31:11 -0500 Message-ID: <547DDB3F.9040509@terremark.com> References: <1417533488-15787-1-git-send-email-vkuznets@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1417533488-15787-1-git-send-email-vkuznets@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Vitaly Kuznetsov , xen-devel@lists.xen.org Cc: Ian Jackson , Andrew Jones , Wei Liu , Ian Campbell , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org On 12/02/14 10: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 > --- > 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, Looks good to me. Reviewed-by: Don Slutz -Don Slutz