X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Ftar.c;h=ebcaded82770d54cd9ac8338d031b1a93fc25a2a;hb=760a1c84d7e83fede50bb635749f092fb8b191c0;hp=9d21e791f3595a86f3a05ce5ce1d9215e44e5e60;hpb=6bda071b5cd8393b37653687027c4ae6c6cf3804;p=libguestfs.git diff --git a/daemon/tar.c b/daemon/tar.c index 9d21e79..ebcaded 100644 --- a/daemon/tar.c +++ b/daemon/tar.c @@ -36,7 +36,7 @@ fwrite_cb (void *fp_ptr, const void *buf, int len) /* Has one FileIn parameter. */ int -do_tar_in (char *dir) +do_tar_in (const char *dir) { int err, r; FILE *fp; @@ -44,7 +44,7 @@ do_tar_in (char *dir) if (!root_mounted || dir[0] != '/') { cancel_receive (); - reply_with_error ("tar-in: root must be mounted and path must be absolute"); + reply_with_error ("root must be mounted and path must be absolute"); return -1; } @@ -99,16 +99,13 @@ do_tar_in (char *dir) /* Has one FileOut parameter. */ int -do_tar_out (char *dir) +do_tar_out (const char *dir) { int r; FILE *fp; char *cmd; char buf[GUESTFS_MAX_CHUNK_SIZE]; - NEED_ROOT (return -1); - ABS_PATH (dir, return -1); - /* "tar -C /sysroot%s -cf - ." but we have to quote the dir. */ if (asprintf_nowarn (&cmd, "tar -C %R -cf - .", dir) == -1) { reply_with_perror ("asprintf"); @@ -152,13 +149,15 @@ do_tar_out (char *dir) return -1; } - send_file_end (0); /* Normal end of file. */ + if (send_file_end (0)) /* Normal end of file. */ + return -1; + return 0; } /* Has one FileIn parameter. */ int -do_tgz_in (char *dir) +do_tgz_in (const char *dir) { int err, r; FILE *fp; @@ -166,7 +165,7 @@ do_tgz_in (char *dir) if (!root_mounted || dir[0] != '/') { cancel_receive (); - reply_with_error ("tar-in: root must be mounted and path must be absolute"); + reply_with_error ("root must be mounted and path must be absolute"); return -1; } @@ -221,16 +220,13 @@ do_tgz_in (char *dir) /* Has one FileOut parameter. */ int -do_tgz_out (char *dir) +do_tgz_out (const char *dir) { int r; FILE *fp; char *cmd; char buf[GUESTFS_MAX_CHUNK_SIZE]; - NEED_ROOT (return -1); - ABS_PATH (dir, return -1); - /* "tar -C /sysroot%s -zcf - ." but we have to quote the dir. */ if (asprintf_nowarn (&cmd, "tar -C %R -zcf - .", dir) == -1) { reply_with_perror ("asprintf"); @@ -274,6 +270,8 @@ do_tgz_out (char *dir) return -1; } - send_file_end (0); /* Normal end of file. */ + if (send_file_end (0)) /* Normal end of file. */ + return -1; + return 0; }