From ae8ad35590ad2b82232920c94a0e2317e4008552 Mon Sep 17 00:00:00 2001 From: Glenn L McGrath Date: Wed, 28 Mar 2001 23:57:51 +0000 Subject: [PATCH] Fixes from Robert Kaiser --- archival/gunzip.c | 10 ++++------ archival/tar.c | 9 +++++---- gunzip.c | 10 ++++------ tar.c | 9 +++++---- 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/archival/gunzip.c b/archival/gunzip.c index 0af6adbf7..93f7c351e 100644 --- a/archival/gunzip.c +++ b/archival/gunzip.c @@ -125,14 +125,13 @@ unsigned short mask_bits[] = { //static int error_number = 0; /* ======================================================================== * Signal and error handler. + */ static void abort_gzip() { error_msg("gzip aborted\n"); -// exit(ERROR); - return; + exit(ERROR); } -*/ static void make_crc_table() { @@ -918,7 +917,7 @@ extern int unzip(FILE *l_in_file, FILE *l_out_file) in_file = l_in_file; out_file = l_out_file; -/* if (signal(SIGINT, SIG_IGN) != SIG_IGN) { + if (signal(SIGINT, SIG_IGN) != SIG_IGN) { (void) signal(SIGINT, (sig_type) abort_gzip); } #ifdef SIGTERM @@ -931,7 +930,7 @@ extern int unzip(FILE *l_in_file, FILE *l_out_file) (void) signal(SIGHUP, (sig_type) abort_gzip); } #endif -*/ + /* Allocate all global buffers (for DYN_ALLOC option) */ window = xmalloc((size_t)(((2L*WSIZE)+1L)*sizeof(unsigned char))); outcnt = 0; @@ -1022,7 +1021,6 @@ extern int gz_open(FILE *compressed_file, int *pid) { int unzip_pipe[2]; -// signal(SIGCHLD, abort_gzip); if (pipe(unzip_pipe)!=0) { error_msg("pipe error"); return(EXIT_FAILURE); diff --git a/archival/tar.c b/archival/tar.c index 9be63ced8..fb8d84446 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -292,12 +292,13 @@ extern int tar_main(int argc, char **argv) status = readTarFile(tarFd, extractFlag, listFlag, tostdoutFlag, verboseFlag, extractList, excludeList); close(tarFd); - } - #ifdef BB_FEATURE_TAR_GZIP - gz_close(pid); - fclose(comp_file); + if (unzipFlag == TRUE) { + gz_close(pid); + fclose(comp_file); + } #endif + } if (status == TRUE) return EXIT_SUCCESS; diff --git a/gunzip.c b/gunzip.c index 0af6adbf7..93f7c351e 100644 --- a/gunzip.c +++ b/gunzip.c @@ -125,14 +125,13 @@ unsigned short mask_bits[] = { //static int error_number = 0; /* ======================================================================== * Signal and error handler. + */ static void abort_gzip() { error_msg("gzip aborted\n"); -// exit(ERROR); - return; + exit(ERROR); } -*/ static void make_crc_table() { @@ -918,7 +917,7 @@ extern int unzip(FILE *l_in_file, FILE *l_out_file) in_file = l_in_file; out_file = l_out_file; -/* if (signal(SIGINT, SIG_IGN) != SIG_IGN) { + if (signal(SIGINT, SIG_IGN) != SIG_IGN) { (void) signal(SIGINT, (sig_type) abort_gzip); } #ifdef SIGTERM @@ -931,7 +930,7 @@ extern int unzip(FILE *l_in_file, FILE *l_out_file) (void) signal(SIGHUP, (sig_type) abort_gzip); } #endif -*/ + /* Allocate all global buffers (for DYN_ALLOC option) */ window = xmalloc((size_t)(((2L*WSIZE)+1L)*sizeof(unsigned char))); outcnt = 0; @@ -1022,7 +1021,6 @@ extern int gz_open(FILE *compressed_file, int *pid) { int unzip_pipe[2]; -// signal(SIGCHLD, abort_gzip); if (pipe(unzip_pipe)!=0) { error_msg("pipe error"); return(EXIT_FAILURE); diff --git a/tar.c b/tar.c index 9be63ced8..fb8d84446 100644 --- a/tar.c +++ b/tar.c @@ -292,12 +292,13 @@ extern int tar_main(int argc, char **argv) status = readTarFile(tarFd, extractFlag, listFlag, tostdoutFlag, verboseFlag, extractList, excludeList); close(tarFd); - } - #ifdef BB_FEATURE_TAR_GZIP - gz_close(pid); - fclose(comp_file); + if (unzipFlag == TRUE) { + gz_close(pid); + fclose(comp_file); + } #endif + } if (status == TRUE) return EXIT_SUCCESS;