X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=daemon%2Fglob.c;h=f2815ecc963364f1c877947a55cb1a7de4251bb7;hp=f15d5e506c45d59ca5fce7b32917a3984eb00bfc;hb=3a5bd5aba23583e64bfaabc906ca95b0f9d37578;hpb=a7b73d4a1e09f12b2002083618056f0c823c1dcf diff --git a/daemon/glob.c b/daemon/glob.c index f15d5e5..f2815ec 100644 --- a/daemon/glob.c +++ b/daemon/glob.c @@ -26,14 +26,11 @@ #include "actions.h" char ** -do_glob_expand (char *pattern) +do_glob_expand (const char *pattern) { int r; glob_t buf; - NEED_ROOT (NULL); - ABS_PATH (pattern, NULL); /* Required so chroot can be used. */ - /* glob(3) in glibc never calls chdir, so this seems to be safe: */ CHROOT_IN; r = glob (pattern, GLOB_MARK|GLOB_BRACE, NULL, &buf); @@ -43,13 +40,17 @@ do_glob_expand (char *pattern) char **rv; rv = malloc (sizeof (char *) * 1); + if (rv == NULL) { + reply_with_perror ("malloc"); + return NULL; + } rv[0] = NULL; return rv; /* Caller frees. */ } if (r != 0) { if (errno != 0) - reply_with_perror ("glob: %s", pattern); + reply_with_perror ("%s", pattern); else reply_with_error ("glob failed: %s", pattern); return NULL;