/* 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
}
/* "tar -C /sysroot%s -xf -" but we have to quote the dir. */
- len = 2 * strlen (dir) + 32;
+ len = 2 * strlen (dir) + sysroot_len + 32;
cmd = malloc (len);
if (!cmd) {
err = errno;
reply_with_perror ("malloc");
return -1;
}
- strcpy (cmd, "tar -C /sysroot");
+ strcpy (cmd, "tar -C ");
+ strcat (cmd, sysroot);
shell_quote (cmd+15, len-15, dir);
strcat (cmd, " -xf -");
return -1;
}
- if (pclose (fp) == -1) {
+ if (pclose (fp) != 0) {
err = errno;
cancel_receive ();
errno = err;
ABS_PATH (dir, -1);
/* "tar -C /sysroot%s -cf - ." but we have to quote the dir. */
- len = 2 * strlen (dir) + 32;
+ len = 2 * strlen (dir) + sysroot_len + 32;
cmd = malloc (len);
if (!cmd) {
reply_with_perror ("malloc");
return -1;
}
- strcpy (cmd, "tar -C /sysroot");
+ strcpy (cmd, "tar -C ");
+ strcat (cmd, sysroot);
shell_quote (cmd+15, len-15, dir);
strcat (cmd, " -cf - .");
return -1;
}
- if (pclose (fp) == -1) {
+ if (pclose (fp) != 0) {
perror (dir);
send_file_end (1); /* Cancel. */
return -1;
}
/* "tar -C /sysroot%s -zxf -" but we have to quote the dir. */
- len = 2 * strlen (dir) + 32;
+ len = 2 * strlen (dir) + sysroot_len + 32;
cmd = malloc (len);
if (!cmd) {
err = errno;
reply_with_perror ("malloc");
return -1;
}
- strcpy (cmd, "tar -C /sysroot");
+ strcpy (cmd, "tar -C ");
+ strcat (cmd, sysroot);
shell_quote (cmd+15, len-15, dir);
strcat (cmd, " -zxf -");
return -1;
}
- if (pclose (fp) == -1) {
+ if (pclose (fp) != 0) {
err = errno;
cancel_receive ();
errno = err;
ABS_PATH (dir, -1);
/* "tar -C /sysroot%s -zcf - ." but we have to quote the dir. */
- len = 2 * strlen (dir) + 32;
+ len = 2 * strlen (dir) + sysroot_len + 32;
cmd = malloc (len);
if (!cmd) {
reply_with_perror ("malloc");
return -1;
}
- strcpy (cmd, "tar -C /sysroot");
+ strcpy (cmd, "tar -C ");
+ strcat (cmd, sysroot);
shell_quote (cmd+15, len-15, dir);
strcat (cmd, " -zcf - .");
return -1;
}
- if (pclose (fp) == -1) {
+ if (pclose (fp) != 0) {
perror (dir);
send_file_end (1); /* Cancel. */
return -1;