appliance: udev-174 moves udevd to /lib/udev/udevd (instead of /sbin/udevd)
[libguestfs.git] / src / guestfs.c
index e4f74e0..98b0595 100644 (file)
@@ -214,12 +214,12 @@ guestfs_close (guestfs_h *g)
   g->sock = -1;
 
   /* Wait for subprocess(es) to exit. */
-  waitpid (g->pid, NULL, 0);
+  if (g->pid > 0) waitpid (g->pid, NULL, 0);
   if (g->recoverypid > 0) waitpid (g->recoverypid, NULL, 0);
 
   /* Remove tmpfiles. */
   if (g->tmpdir) {
-    snprintf (filename, sizeof filename, "%s/sock", g->tmpdir);
+    snprintf (filename, sizeof filename, "%s/guestfsd.sock", g->tmpdir);
     unlink (filename);
 
     rmdir (g->tmpdir);
@@ -427,6 +427,22 @@ guestfs_safe_memdup (guestfs_h *g, void *ptr, size_t size)
   return p;
 }
 
+char *
+guestfs_safe_asprintf (guestfs_h *g, const char *fs, ...)
+{
+  va_list args;
+  char *msg;
+
+  va_start (args, fs);
+  int err = vasprintf (&msg, fs, args);
+  va_end (args);
+
+  if (err == -1)
+    g->abort_cb ();
+
+  return msg;
+}
+
 void
 guestfs_set_out_of_memory_handler (guestfs_h *g, guestfs_abort_cb cb)
 {
@@ -774,3 +790,18 @@ guestfs___print_BufferIn (FILE *out, const char *buf, size_t buf_size)
     fprintf (out,
              _("<truncated, original size %zu bytes>"), orig_size);
 }
+
+void
+guestfs___print_BufferOut (FILE *out, const char *buf, size_t buf_size)
+{
+  guestfs___print_BufferIn (out, buf, buf_size);
+}
+
+void
+guestfs___free_string_list (char **argv)
+{
+  size_t i;
+  for (i = 0; argv[i] != NULL; ++i)
+    free (argv[i]);
+  free (argv);
+}