aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archival/tar.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/archival/tar.c b/archival/tar.c
index 5f3f56784..9792f6b9d 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -459,7 +459,7 @@ static int writeTarFile(const char* tarName, int verboseFlag, char **argv,
error_msg_and_die("Cowardly refusing to create an empty archive");
/* Open the tar file for writing. */
- if (!strcmp(tarName, "-"))
+ if (tarName == NULL || !strcmp(tarName, "-"))
tbInfo.tarFd = fileno(stdout);
else
tbInfo.tarFd = open (tarName, O_WRONLY | O_CREAT | O_TRUNC, 0644);
@@ -694,6 +694,10 @@ int tar_main(int argc, char **argv)
optind++;
}
+ if (src_filename == NULL) {
+ extract_function |= extract_to_stdout;
+ }
+
if (extract_function & (extract_list | extract_all_to_fs)) {
if (dst_prefix == NULL) {
dst_prefix = xstrdup("./");