summaryrefslogtreecommitdiffstats
path: root/daemon/find.c
diff options
context:
space:
mode:
authorRichard Jones <rjones@trick.home.annexia.org>2009-07-18 10:43:52 +0100
committerRichard Jones <rjones@trick.home.annexia.org>2009-07-18 10:43:52 +0100
commit78029b529ad98769685d607230b70f71832d5906 (patch)
treef103cb7252ccca7efc3e39f4400f961d5972937c /daemon/find.c
parente8c954933b2bfb3bc3ead5a151d49d164f1a8eab (diff)
downloadlibguestfs-78029b529ad98769685d607230b70f71832d5906.tar.gz
libguestfs-78029b529ad98769685d607230b70f71832d5906.tar.xz
libguestfs-78029b529ad98769685d607230b70f71832d5906.zip
Make /sysroot path configurable.
Currently /sysroot is hard-coded throughout the daemon code. This patch turns the path into a variable so that we can change it in future, for example to allow standalone mode to be implemented. This patch was tested by running all the C API tests successfully.
Diffstat (limited to 'daemon/find.c')
-rw-r--r--daemon/find.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/daemon/find.c b/daemon/find.c
index 85994b6d..d8829530 100644
--- a/daemon/find.c
+++ b/daemon/find.c
@@ -56,21 +56,27 @@ do_find (char *dir)
FILE *fp;
char **res = NULL;
int size = 0, alloc = 0;
- char sysrootdir[PATH_MAX];
+ char *sysrootdir;
char str[PATH_MAX];
NEED_ROOT (NULL);
ABS_PATH (dir, NULL);
- snprintf (sysrootdir, sizeof sysrootdir, "/sysroot%s", dir);
+ sysrootdir = sysroot_path (dir);
+ if (!sysrootdir) {
+ reply_with_perror ("malloc");
+ return NULL;
+ }
r = stat (sysrootdir, &statbuf);
if (r == -1) {
reply_with_perror ("%s", dir);
+ free (sysrootdir);
return NULL;
}
if (!S_ISDIR (statbuf.st_mode)) {
reply_with_error ("%s: not a directory", dir);
+ free (sysrootdir);
return NULL;
}
@@ -81,11 +87,13 @@ do_find (char *dir)
cmd = malloc (len);
if (!cmd) {
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)