mirror of
https://git.busybox.net/busybox.git
synced 2024-11-23 21:53:25 +08:00
Fix reading from stdin (me), Fix tar segfault when no arguments specified (Geoffrey Lee)
This commit is contained in:
parent
b26674b2f8
commit
f6bf7a03fe
@ -611,6 +611,10 @@ int tar_main(int argc, char **argv)
|
||||
unsigned char tar_create = FALSE;
|
||||
#endif
|
||||
|
||||
if (argc < 2) {
|
||||
show_usage();
|
||||
}
|
||||
|
||||
/* Prepend '-' to the first argument if required */
|
||||
if (argv[1][0] != '-') {
|
||||
char *tmp = xmalloc(strlen(argv[1]) + 2);
|
||||
@ -619,10 +623,6 @@ int tar_main(int argc, char **argv)
|
||||
argv[1] = tmp;
|
||||
}
|
||||
|
||||
if (argc < 2) {
|
||||
show_usage();
|
||||
}
|
||||
|
||||
/* Initialise default values */
|
||||
tar_handle = init_handle();
|
||||
tar_handle->flags = ARCHIVE_CREATE_LEADING_DIRS;
|
||||
@ -736,13 +736,13 @@ int tar_main(int argc, char **argv)
|
||||
{
|
||||
if ((tar_filename[0] == '-') && (tar_filename[1] == '\0')) {
|
||||
tar_handle->src_fd = fileno(stdin);
|
||||
tar_handle->seek = seek_by_char;
|
||||
} else {
|
||||
tar_handle->seek = seek_by_jump;
|
||||
tar_handle->src_fd = xopen(tar_filename, O_RDONLY);
|
||||
}
|
||||
#ifdef CONFIG_FEATURE_TAR_GZIP
|
||||
if (get_header_ptr == get_header_tar_gz) {
|
||||
tar_handle->seek = seek_by_char;
|
||||
get_header_tar_gz(tar_handle);
|
||||
} else
|
||||
#endif /* CONFIG_FEATURE_TAR_GZIP */
|
||||
|
Loading…
Reference in New Issue
Block a user