From: Keir Fraser Date: Tue, 4 May 2010 10:56:26 +0000 (+0100) Subject: xl: Add some return-code sanity checks to 'xl info'. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~12287 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b2372dcbc5f15d4fcc07f95a9ee7befd618acaeb;p=xen.git xl: Add some return-code sanity checks to 'xl info'. Signed-off-by: Yu Zhiguo --- diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 2a866178dd..783c060290 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -2640,7 +2640,11 @@ static void output_xeninfo(void) const libxl_version_info *info; int sched_id; - info = libxl_get_version_info(&ctx); + if (!(info = libxl_get_version_info(&ctx))) { + fprintf(stderr, "libxl_get_version_info failed.\n"); + return; + } + if ((sched_id = libxl_get_sched_id(&ctx)) < 0) { fprintf(stderr, "get_sched_id sysctl failed.\n"); return; @@ -2670,14 +2674,13 @@ static void output_nodeinfo(void) { struct utsname utsbuf; - uname(&utsbuf); + if (uname(&utsbuf) < 0) + return; printf("host : %s\n", utsbuf.nodename); printf("release : %s\n", utsbuf.release); printf("version : %s\n", utsbuf.version); printf("machine : %s\n", utsbuf.machine); - - return; } static void output_physinfo(void) @@ -2706,9 +2709,11 @@ static void output_physinfo(void) printf(" hvm_directio"); printf("\n"); vinfo = libxl_get_version_info(&ctx); - i = (1 << 20) / vinfo->pagesize; - printf("total_memory : %lu\n", info.total_pages / i); - printf("free_memory : %lu\n", info.free_pages / i); + if (vinfo) { + i = (1 << 20) / vinfo->pagesize; + printf("total_memory : %lu\n", info.total_pages / i); + printf("free_memory : %lu\n", info.free_pages / i); + } return; }