libxc: fix segfault on uninitialized xch->fmem
authorSeraphime Kirkovski <kirkseraph@gmail.com>
Tue, 4 Apr 2017 12:40:48 +0000 (14:40 +0200)
committerWei Liu <wei.liu2@citrix.com>
Tue, 4 Apr 2017 13:51:23 +0000 (14:51 +0100)
Currently in xc_interface_open, xch->fmem is not initialized
and in some rare case the code fails before ever assigning a value
to it.

I got this in master:

   $ sudo ./xl/xl run
   xencall: error: Could not obtain handle on privileged command interface: No such file or directory
   Segmentation fault

This initializes the whole xch_buff to 0.

Signed-off-by: Seraphime Kirkovski <kirkseraph@gmail.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
tools/libxc/xc_private.c

index 72e6242417d20d2ba12020b9c7621b54ea93aca3..f395594a8f93eac03f2b2a6337ebf7ea13309552 100644 (file)
@@ -30,7 +30,7 @@ struct xc_interface_core *xc_interface_open(xentoollog_logger *logger,
                                             xentoollog_logger *dombuild_logger,
                                             unsigned open_flags)
 {
-    struct xc_interface_core xch_buf, *xch = &xch_buf;
+    struct xc_interface_core xch_buf = { 0 }, *xch = &xch_buf;
 
     xch->flags = open_flags;
     xch->dombuild_logger_file = 0;