diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2012-10-18 14:20:54 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2012-10-18 22:11:49 +0100 |
commit | fa209341f834d1ab00e0d9fa767c8221506285e4 (patch) | |
tree | b255fd9538e0f3b10e6c807006393a0afae1b5b3 /src/launch.c | |
parent | 2e90f4312928f332f8997b52be3fe54f20920242 (diff) | |
download | libguestfs-fa209341f834d1ab00e0d9fa767c8221506285e4.tar.gz libguestfs-fa209341f834d1ab00e0d9fa767c8221506285e4.tar.xz libguestfs-fa209341f834d1ab00e0d9fa767c8221506285e4.zip |
lib: Change guestfs___remove_tmpdir function to use command mini-library.
Diffstat (limited to 'src/launch.c')
-rw-r--r-- | src/launch.c | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/src/launch.c b/src/launch.c index cc45a10b..46817073 100644 --- a/src/launch.c +++ b/src/launch.c @@ -760,29 +760,20 @@ guestfs___lazy_make_tmpdir (guestfs_h *g) /* Recursively remove a temporary directory. If removal fails, just * return (it's a temporary directory so it'll eventually be cleaned * up by a temp cleaner). This is done using "rm -rf" because that's - * simpler and safer, but we have to exec to ensure that paths don't - * need to be quoted. + * simpler and safer. */ void -guestfs___remove_tmpdir (const char *dir) +guestfs___remove_tmpdir (guestfs_h *g, const char *dir) { - pid_t pid = fork (); + struct command *cmd; - if (pid == -1) { - perror ("remove tmpdir: fork"); - return; - } - if (pid == 0) { - execlp ("rm", "rm", "-rf", dir, NULL); - perror ("remove tmpdir: exec: rm"); - _exit (EXIT_FAILURE); - } - - /* Parent. */ - if (waitpid (pid, NULL, 0) == -1) { - perror ("remove tmpdir: waitpid"); - return; - } + cmd = guestfs___new_command (g); + guestfs___cmd_add_arg (cmd, "rm"); + guestfs___cmd_add_arg (cmd, "-rf"); + guestfs___cmd_add_arg (cmd, dir); + /* Ignore failures. */ + guestfs___cmd_run (cmd); + guestfs___cmd_close (cmd); } int |