/* libguestfs - the guestfsd daemon
- * Copyright (C) 2009 Red Hat Inc.
+ * Copyright (C) 2009 Red Hat Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/* Has one FileIn parameter. */
int
-do_tar_in (const char *dir)
+do_tar_in (char *dir)
{
int err, r, len;
FILE *fp;
cancel_receive ();
errno = err;
reply_with_perror ("%s", cmd);
+ free (cmd);
return -1;
}
+ free (cmd);
r = receive_file (fwrite_cb, &fp);
if (r == -1) { /* write error */
return -1;
}
- if (pclose (fp) == -1) {
+ if (pclose (fp) != 0) {
err = errno;
cancel_receive ();
errno = err;
/* Has one FileOut parameter. */
int
-do_tar_out (const char *dir)
+do_tar_out (char *dir)
{
int r, len;
FILE *fp;
fp = popen (cmd, "r");
if (fp == NULL) {
reply_with_perror ("%s", cmd);
+ free (cmd);
return -1;
}
+ free (cmd);
/* Now we must send the reply message, before the file contents. After
* this there is no opportunity in the protocol to send any error
}
}
- if (r == -1) {
+ if (ferror (fp)) {
perror (dir);
send_file_end (1); /* Cancel. */
pclose (fp);
return -1;
}
- if (pclose (fp) == -1) {
+ if (pclose (fp) != 0) {
perror (dir);
send_file_end (1); /* Cancel. */
return -1;
/* Has one FileIn parameter. */
int
-do_tgz_in (const char *dir)
+do_tgz_in (char *dir)
{
int err, r, len;
FILE *fp;
cancel_receive ();
errno = err;
reply_with_perror ("%s", cmd);
+ free (cmd);
return -1;
}
+ free (cmd);
r = receive_file (fwrite_cb, &fp);
if (r == -1) { /* write error */
return -1;
}
- if (pclose (fp) == -1) {
+ if (pclose (fp) != 0) {
err = errno;
cancel_receive ();
errno = err;
/* Has one FileOut parameter. */
int
-do_tgz_out (const char *dir)
+do_tgz_out (char *dir)
{
int r, len;
FILE *fp;
fp = popen (cmd, "r");
if (fp == NULL) {
reply_with_perror ("%s", cmd);
+ free (cmd);
return -1;
}
+ free (cmd);
/* Now we must send the reply message, before the file contents. After
* this there is no opportunity in the protocol to send any error
}
}
- if (r == -1) {
+ if (ferror (fp)) {
perror (dir);
send_file_end (1); /* Cancel. */
pclose (fp);
return -1;
}
- if (pclose (fp) == -1) {
+ if (pclose (fp) != 0) {
perror (dir);
send_file_end (1); /* Cancel. */
return -1;