From: Chunyan Liu Date: Fri, 18 Jul 2014 06:18:04 +0000 (+0800) Subject: xl: 'xl vncviewer' accesses port 0 by any invalid domid X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~4648 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2a8cc1a55329ead252ed323ec4bbee534d5c0f23;p=xen.git xl: 'xl vncviewer' accesses port 0 by any invalid domid 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 Acked-by: Ian Campbell --- diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index a9205d147e..3526539654 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -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,