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

Re: [Xen-devel] libxl parser question

On Sat, 2012-05-05 at 19:19 -0400, Goncalo Gomes wrote:
> diff -r 0f53540494f7 tools/libxl/xl_cmdimpl.c
> --- a/tools/libxl/xl_cmdimpl.c  Fri May 04 11:18:48 2012 +0100
> +++ b/tools/libxl/xl_cmdimpl.c  Sat May 05 21:27:41 2012 +0000
> @@ -728,6 +728,7 @@ static void parse_config_data(const char
>      if (!xlu_cfg_get_long(config, "rtc_timeoffset", &l, 0))
>          b_info->rtc_timeoffset = l;
> +    xlu_cfg_get_defbool(config, "vncviewer", &b_info->localtime, 0);
>      xlu_cfg_get_defbool(config, "localtime", &b_info->localtime, 0);

You have a small typo here (localtime instead of vncviewer), but that
won't effect the crux of this issue.

I've tried reproducing using your config file with the patch applied and
I can't.

> [...]
> This abort is the `default` case in the switch at xl_cmdimpl.c:736, 
> which gets triggered from an erroneous b_info->type with a bogus value 
> of 0x84 (which is neither PV nor HVM.)

I think it might be useful to sprinkle prints of b_info->type everywhere
from the call to libxl_domain_build_info_init_type up until this switch
statement to see if you can identify the line which is overwriting this
field. I couldn't spot it by eye but something in there is presumably
blowing off the end of a buffer or something similar.

You should probably also validate the initial value, which comes from
c_info->type, and if that is wrong trace it back to the place which sets
that initial value.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.