]> xenbits.xensource.com Git - xen.git/commitdiff
xl: Add some return-code sanity checks to 'xl info'.
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 4 May 2010 10:56:26 +0000 (11:56 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 4 May 2010 10:56:26 +0000 (11:56 +0100)
Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
tools/libxl/xl_cmdimpl.c

index 2a866178ddecb86d91af40991482cd26c0815284..783c060290bd865d20bbaafb45353ec0b7ccb900 100644 (file)
@@ -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;
 }