mirror of
https://github.com/sheumann/hush.git
synced 2024-12-22 14:30:31 +00:00
* archival/bunzip2.c (bunzip2_main): Remove compressed file.
* testsuite/bunzip2/bunzip2-removes-compressed-file: New.
This commit is contained in:
parent
35d60421b4
commit
cf32ac543c
@ -2323,10 +2323,12 @@ int bunzip2_main(int argc, char **argv)
|
|||||||
const int bunzip_force = 2;
|
const int bunzip_force = 2;
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
int opt = 0;
|
int opt = 0;
|
||||||
|
int status;
|
||||||
|
|
||||||
FILE *src_stream;
|
FILE *src_stream;
|
||||||
FILE *dst_stream;
|
FILE *dst_stream;
|
||||||
char *save_name = NULL;
|
char *save_name = NULL;
|
||||||
|
char *delete_name = NULL;
|
||||||
|
|
||||||
/* if called as bzcat */
|
/* if called as bzcat */
|
||||||
if (strcmp(applet_name, "bzcat") == 0)
|
if (strcmp(applet_name, "bzcat") == 0)
|
||||||
@ -2369,7 +2371,22 @@ int bunzip2_main(int argc, char **argv)
|
|||||||
} else {
|
} else {
|
||||||
dst_stream = xfopen(save_name, "w");
|
dst_stream = xfopen(save_name, "w");
|
||||||
}
|
}
|
||||||
uncompressStream(src_stream, dst_stream);
|
|
||||||
|
|
||||||
return(TRUE);
|
if (uncompressStream(src_stream, dst_stream)) {
|
||||||
|
if (save_name != NULL)
|
||||||
|
delete_name = argv[optind];
|
||||||
|
status = EXIT_SUCCESS;
|
||||||
|
} else {
|
||||||
|
if (save_name != NULL)
|
||||||
|
delete_name = save_name;
|
||||||
|
status = EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (delete_name) {
|
||||||
|
if (unlink(delete_name) < 0) {
|
||||||
|
error_msg_and_die("Couldn't remove %s", delete_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return status;
|
||||||
}
|
}
|
||||||
|
3
testsuite/bunzip2/bunzip2-removes-compressed-file
Normal file
3
testsuite/bunzip2/bunzip2-removes-compressed-file
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
echo foo | bzip2 >foo.bz2
|
||||||
|
busybox bunzip2 foo.bz2
|
||||||
|
test ! -f foo.bz2
|
Loading…
Reference in New Issue
Block a user