summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2014-01-27 12:02:18 (GMT)
committer Denys Vlasenko <vda.linux@googlemail.com>2014-01-27 12:02:18 (GMT)
commitb664f740d90880560ce46b11f766625341342e80 (patch)
tree6a85f939b21e1d2c531cf02ce6e6a22c1e954425
parentbf2f2229bb108a7bdd39326eb4e886e2f47df960 (diff)
downloadbusybox-b664f740d90880560ce46b11f766625341342e80.tar.gz
busybox-b664f740d90880560ce46b11f766625341342e80.tar.bz2
libbb: open_zipped() should not fail on non-compressed files
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--archival/libarchive/open_transformer.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/archival/libarchive/open_transformer.c b/archival/libarchive/open_transformer.c
index 1aeba13..27854af 100644
--- a/archival/libarchive/open_transformer.c
+++ b/archival/libarchive/open_transformer.c
@@ -200,7 +200,16 @@ int FAST_FUNC open_zipped(const char *fname)
|| (ENABLE_FEATURE_SEAMLESS_BZ2)
|| (ENABLE_FEATURE_SEAMLESS_XZ)
) {
- setup_unzip_on_fd(fd, /*fail_if_not_detected:*/ 1);
+ /*
+ * 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);
}
return fd;