update all NEED_ROOT uses
[libguestfs.git] / daemon / find.c
index d882953..950a0fc 100644 (file)
@@ -59,8 +59,8 @@ do_find (char *dir)
   char *sysrootdir;
   char str[PATH_MAX];
 
-  NEED_ROOT (NULL);
-  ABS_PATH (dir, NULL);
+  NEED_ROOT (return NULL);
+  ABS_PATH (dir, return NULL);
 
   sysrootdir = sysroot_path (dir);
   if (!sysrootdir) {
@@ -83,21 +83,14 @@ do_find (char *dir)
   sysrootdirlen = strlen (sysrootdir);
 
   /* Assemble the external find command. */
-  len = 2 * sysrootdirlen + 32;
-  cmd = malloc (len);
-  if (!cmd) {
+  if (asprintf_nowarn (&cmd, "find %Q -print0", sysrootdir) == -1) {
     reply_with_perror ("malloc");
     free (sysrootdir);
     return NULL;
   }
 
-  strcpy (cmd, "find ");
-  shell_quote (cmd+5, len-5, sysrootdir);
-  free (sysrootdir);
-  strcat (cmd, " -print0");
-
   if (verbose)
-    printf ("%s\n", cmd);
+    fprintf (stderr, "%s\n", cmd);
 
   fp = popen (cmd, "r");
   if (fp == NULL) {