diff options
author | Denys Vlasenko | 2014-02-02 02:06:38 +0100 |
---|---|---|
committer | Denys Vlasenko | 2014-02-02 02:06:38 +0100 |
commit | 640ce3de07807133796bccd0bdfa146bbfc788c7 (patch) | |
tree | 0d17e53405b8cbf71aed4d8ba6c9dc27df14814a /archival/libarchive/open_transformer.c | |
parent | f1999b5a9d2788cdc120b1ee2ab1de18e95b38f2 (diff) | |
download | busybox-640ce3de07807133796bccd0bdfa146bbfc788c7.zip busybox-640ce3de07807133796bccd0bdfa146bbfc788c7.tar.gz |
zcat: complain if input is not compressed
function old new delta
buffer_fill_and_print 178 191 +13
varvalue 735 743 +8
bbunpack 747 755 +8
open_zipped 85 89 +4
xmalloc_open_zipped_read_close 61 63 +2
get_addr_1 240 242 +2
fbsplash_main 1228 1230 +2
pstree_main 322 321 -1
builtin_type 121 119 -2
do_load 954 926 -28
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 7/3 up/down: 39/-31) Total: 8 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival/libarchive/open_transformer.c')
-rw-r--r-- | archival/libarchive/open_transformer.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/archival/libarchive/open_transformer.c b/archival/libarchive/open_transformer.c index 27854af..1986630 100644 --- a/archival/libarchive/open_transformer.c +++ b/archival/libarchive/open_transformer.c @@ -118,7 +118,7 @@ void FAST_FUNC open_transformer(int fd, const char *transform_prog) /* Used by e.g. rpm which gives us a fd without filename, * thus we can't guess the format from filename's extension. */ -int FAST_FUNC setup_unzip_on_fd(int fd, int fail_if_not_detected) +int FAST_FUNC setup_unzip_on_fd(int fd, int fail_if_not_compressed) { union { uint8_t b[4]; @@ -159,7 +159,7 @@ int FAST_FUNC setup_unzip_on_fd(int fd, int fail_if_not_detected) } /* No known magic seen */ - if (fail_if_not_detected) + if (fail_if_not_compressed) bb_error_msg_and_die("no gzip" IF_FEATURE_SEAMLESS_BZ2("/bzip2") IF_FEATURE_SEAMLESS_XZ("/xz") @@ -180,7 +180,7 @@ int FAST_FUNC setup_unzip_on_fd(int fd, int fail_if_not_detected) return 0; } -int FAST_FUNC open_zipped(const char *fname) +int FAST_FUNC open_zipped(const char *fname, int fail_if_not_compressed) { int fd; @@ -200,16 +200,7 @@ int FAST_FUNC open_zipped(const char *fname) || (ENABLE_FEATURE_SEAMLESS_BZ2) || (ENABLE_FEATURE_SEAMLESS_XZ) ) { - /* - * Do we want to fail_if_not_detected? - * In most cases, no: think "insmod non_compressed_module". - * A case which would like to fail is "zcat uncompressed_file": - * otherwise, it happily outputs uncompressed_file as-is, - * which is, strictly speaking, not what is expected. - * If this ever becomes a problem, we can add - * fail_if_not_detected bool argument to open_zipped(). - */ - setup_unzip_on_fd(fd, /*fail_if_not_detected:*/ 0); + setup_unzip_on_fd(fd, fail_if_not_compressed); } return fd; @@ -222,7 +213,7 @@ void* FAST_FUNC xmalloc_open_zipped_read_close(const char *fname, size_t *maxsz_ int fd; char *image; - fd = open_zipped(fname); + fd = open_zipped(fname, /*fail_if_not_compressed:*/ 0); if (fd < 0) return NULL; |