diff options
author | Matt Kraai <kraai@debian.org> | 2001-10-12 19:00:15 +0000 |
---|---|---|
committer | Matt Kraai <kraai@debian.org> | 2001-10-12 19:00:15 +0000 |
commit | f86bbfaddd5803a173d51e41f18af9310f7a612c (patch) | |
tree | 791f4ff12dd1f384c9567eea16421af06f7bdac2 /archival/tar.c | |
parent | 9b2589dafde8efc5327e597690c84bfbfe42d53f (diff) | |
download | busybox-w32-f86bbfaddd5803a173d51e41f18af9310f7a612c.tar.gz busybox-w32-f86bbfaddd5803a173d51e41f18af9310f7a612c.tar.bz2 busybox-w32-f86bbfaddd5803a173d51e41f18af9310f7a612c.zip |
Fix tar segfault when include list is empty and exclude list is not.
Diffstat (limited to 'archival/tar.c')
-rw-r--r-- | archival/tar.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/archival/tar.c b/archival/tar.c index cd563393b..ea0247e56 100644 --- a/archival/tar.c +++ b/archival/tar.c | |||
@@ -528,7 +528,10 @@ char **merge_list(char **include_list, char **exclude_list) | |||
528 | int new_include_count = 0; | 528 | int new_include_count = 0; |
529 | int include_count = 0; | 529 | int include_count = 0; |
530 | int exclude_count; | 530 | int exclude_count; |
531 | 531 | ||
532 | if (include_list == NULL) | ||
533 | return exclude_list; | ||
534 | |||
532 | while (include_list[include_count] != NULL) { | 535 | while (include_list[include_count] != NULL) { |
533 | int found = FALSE; | 536 | int found = FALSE; |
534 | exclude_count = 0; | 537 | exclude_count = 0; |
@@ -684,8 +687,8 @@ int tar_main(int argc, char **argv) | |||
684 | #ifdef BB_FEATURE_TAR_EXCLUDE | 687 | #ifdef BB_FEATURE_TAR_EXCLUDE |
685 | /* Remove excluded files from the include list */ | 688 | /* Remove excluded files from the include list */ |
686 | if (exclude_list != NULL) { | 689 | if (exclude_list != NULL) { |
687 | /* If both an exclude and include file list was present then | 690 | /* If both an exclude and include file list were present then |
688 | * its an exclude from include list only, if not its really an | 691 | * it's an exclude from include list only, if not it's really an |
689 | * exclude list (and a poor choice of variable names) */ | 692 | * exclude list (and a poor choice of variable names) */ |
690 | if (include_list == NULL) { | 693 | if (include_list == NULL) { |
691 | extract_function |= extract_exclude_list; | 694 | extract_function |= extract_exclude_list; |