diff options
author | Glenn L McGrath | 2002-11-08 07:09:42 +0000 |
---|---|---|
committer | Glenn L McGrath | 2002-11-08 07:09:42 +0000 |
commit | f6bf7a03fec2ae854bdbf7a597484b7ab49a4a51 (patch) | |
tree | 58a1eafb8c61be3a3b5567e69588cb227021018d /archival | |
parent | b26674b2f8a300d9ec41a7a728426beb0536acd2 (diff) | |
download | busybox-f6bf7a03fec2ae854bdbf7a597484b7ab49a4a51.zip busybox-f6bf7a03fec2ae854bdbf7a597484b7ab49a4a51.tar.gz |
Fix reading from stdin (me), Fix tar segfault when no arguments specified (Geoffrey Lee)
Diffstat (limited to 'archival')
-rw-r--r-- | archival/tar.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/archival/tar.c b/archival/tar.c index 95ef33b..01ec90c 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -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 */ |