diff options
-rw-r--r-- | archival/gunzip.c | 10 | ||||
-rw-r--r-- | archival/tar.c | 9 | ||||
-rw-r--r-- | gunzip.c | 10 | ||||
-rw-r--r-- | tar.c | 9 |
4 files changed, 18 insertions, 20 deletions
diff --git a/archival/gunzip.c b/archival/gunzip.c index 0af6adb..93f7c35 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 9be63ce..fb8d844 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; @@ -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); @@ -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; |