guestfs: don't fault upon failed vasprintf
[libguestfs.git] / src / guestfs.c
index 5750a4f..802c1d2 100644 (file)
@@ -174,7 +174,6 @@ struct guestfs_h
   char *path;                  /* Path to kernel, initrd. */
   char *qemu;                  /* Qemu binary. */
   char *append;                        /* Append to kernel command line. */
-  char *kernel;                        /* Override appliance kernel. */
 
   int memsize;                 /* Size of RAM (megabytes). */
 
@@ -250,12 +249,6 @@ guestfs_create (void)
     if (!g->append) goto error;
   }
 
-  str = getenv ("LIBGUESTFS_KERNEL");
-  if (str) {
-    g->kernel = strdup (str);
-    if (!g->kernel) goto error;
-  }
-
   /* Choose a suitable memory size.  Previously we tried to choose
    * a minimal memory size, but this isn't really necessary since
    * recent QEMU and KVM don't do anything nasty like locking
@@ -450,9 +443,11 @@ guestfs_perrorf (guestfs_h *g, const char *fs, ...)
   int err = errno;
 
   va_start (args, fs);
-  vasprintf (&msg, fs, args);
+  int err = vasprintf (&msg, fs, args);
   va_end (args);
 
+  if (err < 0) return;
+
 #ifndef _GNU_SOURCE
   char buf[256];
   strerror_r (err, buf, sizeof buf);
@@ -681,22 +676,6 @@ guestfs_get_append (guestfs_h *g)
 }
 
 int
-guestfs_set_kernel (guestfs_h *g, const char *kernel)
-{
-  free (g->kernel);
-  g->kernel = NULL;
-
-  g->kernel = kernel ? safe_strdup (g, kernel) : NULL;
-  return 0;
-}
-
-const char *
-guestfs_get_kernel (guestfs_h *g)
-{
-  return g->kernel;
-}
-
-int
 guestfs_set_memsize (guestfs_h *g, int memsize)
 {
   g->memsize = memsize;
@@ -1066,7 +1045,9 @@ guestfs_launch (guestfs_h *g)
     "console=ttyS0 "   /* serial console */                            \
     "udevtimeout=300 " /* good for very slow systems (RHBZ#480319) */  \
     "noapic "          /* workaround for RHBZ#502058 - ok if not SMP */ \
-    "acpi=off "        /* we don't need ACPI, turn it off */
+    "acpi=off "        /* we don't need ACPI, turn it off */           \
+    "cgroup_disable=memory " /* saves us about 5 MB of RAM */           \
+    "selinux=0 "       /* SELinux is messed up if there's no policy */
 
     /* Linux kernel command line. */
     snprintf (append, sizeof append,
@@ -1081,7 +1062,7 @@ guestfs_launch (guestfs_h *g)
     add_cmdline (g, memsize_str);
     add_cmdline (g, "-no-reboot"); /* Force exit instead of reboot on panic */
     add_cmdline (g, "-kernel");
-    add_cmdline (g, g->kernel ? : (char *) kernel);
+    add_cmdline (g, (char *) kernel);
     add_cmdline (g, "-initrd");
     add_cmdline (g, (char *) initrd);
     add_cmdline (g, "-append");