fish: Use size_t instead of int when counting strings.
[libguestfs.git] / fish / inspect.c
index 713501e..0b82ade 100644 (file)
@@ -43,14 +43,14 @@ free_strings (char **argv)
   free (argv);
 }
 
-static int
+static size_t
 count_strings (char *const *argv)
 {
-  int c;
+  size_t i;
 
-  for (c = 0; argv[c]; ++c)
+  for (i = 0; argv[i]; ++i)
     ;
-  return c;
+  return i;
 }
 
 static int
@@ -73,6 +73,12 @@ compare_keys (const void *p1, const void *p2)
 void
 inspect_mount (void)
 {
+  if (live) {
+    fprintf (stderr, _("%s: don't use --live and -i options together\n"),
+             program_name);
+    exit (EXIT_FAILURE);
+  }
+
   inspect_do_decrypt ();
 
   char **roots = guestfs_inspect_os (g);
@@ -82,12 +88,14 @@ inspect_mount (void)
   if (roots[0] == NULL) {
     fprintf (stderr, _("%s: no operating system was found on this disk\n"),
              program_name);
+    free_strings (roots);
     exit (EXIT_FAILURE);
   }
 
   if (roots[1] != NULL) {
     fprintf (stderr, _("%s: multi-boot operating systems are not supported by the -i option\n"),
              program_name);
+    free_strings (roots);
     exit (EXIT_FAILURE);
   }
 
@@ -136,7 +144,7 @@ void
 print_inspect_prompt (void)
 {
   char *name = guestfs_inspect_get_product_name (g, root);
-  if (STRNEQ (name, "unknown"))
+  if (name && STRNEQ (name, "unknown"))
     printf (_("Operating system: %s\n"), name);
   free (name);