# xl list xc: error: Could not obtain handle on privileged command interface (2 = No such file or directory): Internal error Segmentation fault This is because xc free the logger which xl created. Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com> diff -r b622e411eef8 tools/libxc/xc_private.c --- a/tools/libxc/xc_private.c Thu Jun 24 21:56:03 2010 +0100 +++ b/tools/libxc/xc_private.c Mon Jun 28 22:48:07 2010 +0800 @@ -19,6 +19,7 @@ xentoollog_logger *dombuild_logger, unsigned open_flags) { xc_interface xch_buf, *xch = &xch_buf; + int init_handler = 0; xch->fd = -1; xch->dombuild_logger_file = 0; @@ -33,6 +34,7 @@ xtl_createlogger_stdiostream(stderr, XTL_PROGRESS, 0); if (!xch->error_handler) goto err; + init_handler =1; } xch = malloc(sizeof(*xch)); @@ -52,7 +54,7 @@ return xch; err: - if (xch) xtl_logger_destroy(xch->error_handler); + if (xch && init_handler) xtl_logger_destroy(xch->error_handler); if (xch != &xch_buf) free(xch); return 0; } -- Regards Yang Hongyang _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Yang Hongyang writes ("[Xen-devel] [PATCH]libxc: fix a Segmentation fault"):> # xl list > xc: error: Could not obtain handle on privileged command interface (2 = No such file or directory): Internal error > Segmentation fault > > This is because xc free the logger which xl created.Well spotted. You''re right about the cause, but your fix is not correct. The correct fix is that xc_interface_open''s error path should free error_handler_tofree rather than error_handler. So there is no need to add another variable. I will apply that fix. Thanks, Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Yang Hongyang
2010-Jun-29 00:40 UTC
Re: [Xen-devel] [PATCH]libxc: fix a Segmentation fault
On 06/28/2010 11:54 PM, Ian Jackson wrote:> Yang Hongyang writes ("[Xen-devel] [PATCH]libxc: fix a Segmentation fault"): >> # xl list >> xc: error: Could not obtain handle on privileged command interface (2 = No such file or directory): Internal error >> Segmentation fault >> >> This is because xc free the logger which xl created. > > Well spotted. You''re right about the cause, but your fix is not > correct. The correct fix is that xc_interface_open''s error path > should free error_handler_tofree rather than error_handler. So there > is no need to add another variable. I will apply that fix. >OK,Thanks Ian.> Thanks, > Ian. > >-- Regards Yang Hongyang _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel