From b2372dcbc5f15d4fcc07f95a9ee7befd618acaeb Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 4 May 2010 11:56:26 +0100 Subject: [PATCH] xl: Add some return-code sanity checks to 'xl info'. Signed-off-by: Yu Zhiguo --- tools/libxl/xl_cmdimpl.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) 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; } -- 2.30.2