Things like 'tar -c /tmp/*' and 'tar -cO /tmp/*' where the output
filename was not explicitly specified were segfaulting. -Erik
This commit is contained in:
parent
730f826f25
commit
f3f9062ecf
@ -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");
|
error_msg_and_die("Cowardly refusing to create an empty archive");
|
||||||
|
|
||||||
/* Open the tar file for writing. */
|
/* Open the tar file for writing. */
|
||||||
if (!strcmp(tarName, "-"))
|
if (tarName == NULL || !strcmp(tarName, "-"))
|
||||||
tbInfo.tarFd = fileno(stdout);
|
tbInfo.tarFd = fileno(stdout);
|
||||||
else
|
else
|
||||||
tbInfo.tarFd = open (tarName, O_WRONLY | O_CREAT | O_TRUNC, 0644);
|
tbInfo.tarFd = open (tarName, O_WRONLY | O_CREAT | O_TRUNC, 0644);
|
||||||
@ -694,6 +694,10 @@ int tar_main(int argc, char **argv)
|
|||||||
optind++;
|
optind++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (src_filename == NULL) {
|
||||||
|
extract_function |= extract_to_stdout;
|
||||||
|
}
|
||||||
|
|
||||||
if (extract_function & (extract_list | extract_all_to_fs)) {
|
if (extract_function & (extract_list | extract_all_to_fs)) {
|
||||||
if (dst_prefix == NULL) {
|
if (dst_prefix == NULL) {
|
||||||
dst_prefix = xstrdup("./");
|
dst_prefix = xstrdup("./");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user