This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] Re: [PATCH] libxl: initialize domid to 0 in libxl__create_st

To: Wei Liu <liuw@xxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH] libxl: initialize domid to 0 in libxl__create_stubdom
From: Ian Campbell <Ian.Campbell@xxxxxxxxxxxxx>
Date: Thu, 9 Jun 2011 08:55:21 +0100
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Stabellini <Stefano.Stabellini@xxxxxxxxxxxxx>, Stefano
Delivery-date: Thu, 09 Jun 2011 00:56:35 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1307595829.8990.9.camel@limbo>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Citrix Systems, Inc.
References: <1307595829.8990.9.camel@limbo>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Thu, 2011-06-09 at 06:03 +0100, Wei Liu wrote:
> The uninitialized domid may cause libxl__domain_make to fail.
> In libxl__domain_make:
> assert(!libxl_domid_valid_guest(*domid)).
> Signed-off-by: Wei Liu <liuw@xxxxxxxxx>

That check seems pretty odd to me at first but the commit message of
22842:ccfa0527893e does a good job of explaining why so: 

Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

although it's not clear why libxl__domain_make doesn't just set an
invalid value as it's first act and save the callers the effort, the net
result would still be the correct semantics for libxl_domid_valid_guest
when the function exits.


> diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
> index 47a51c8..fbee1d0 100644
> --- a/tools/libxl/libxl_dm.c
> +++ b/tools/libxl/libxl_dm.c
> @@ -570,7 +570,7 @@ static int libxl__create_stubdom(libxl__gc *gc,
>      libxl_domain_create_info c_info;
>      libxl_domain_build_info b_info;
>      libxl__domain_build_state state;
> -    uint32_t domid;
> +    uint32_t domid = 0;
>      char **args;
>      struct xs_permissions perm[2];
>      xs_transaction_t t;

Xen-devel mailing list