]> xenbits.xensource.com Git - xen.git/commitdiff
xl: 'xl vncviewer' accesses port 0 by any invalid domid
authorChunyan Liu <cyliu@suse.com>
Fri, 18 Jul 2014 06:18:04 +0000 (14:18 +0800)
committerIan Campbell <ian.campbell@citrix.com>
Fri, 18 Jul 2014 12:37:47 +0000 (13:37 +0100)
Currently, with command:
  xl vncviewer invalid_domid
it always brings user to the domU using vncport 5900.
The invalid domid could be an non-existing one or Dom0.
It's better to report error in this case.

Correct libxl_vncviewer_exec:
  In existing code, when vncport is NULL, it still continues
  and will show vncport 5900. So, with 'xl vncviewer 0' it also
  wrongly shows domU using vncport 5900. Correct it to report error
  if vncport is NULL.

Signed-off-by: Chunyan Liu <cyliu@suse.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
tools/libxl/libxl.c

index a9205d147e2256aa44a4082277ed071753aafa2c..352653965413b7147cfac8a0147f0677c21d035f 100644 (file)
@@ -1719,8 +1719,12 @@ int libxl_vncviewer_exec(libxl_ctx *ctx, uint32_t domid, int autopass)
     vnc_port = libxl__xs_read(gc, XBT_NULL,
                             libxl__sprintf(gc,
                             "/local/domain/%d/console/vnc-port", domid));
-    if ( vnc_port )
-        port = atoi(vnc_port) - 5900;
+    if (!vnc_port) {
+        LOG(ERROR, "Cannot get vnc-port of domain %d", domid);
+        goto x_fail;
+    }
+
+    port = atoi(vnc_port) - 5900;
 
     vnc_listen = libxl__xs_read(gc, XBT_NULL,
                                 libxl__sprintf(gc,