Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(handlers): replace CPIO extractor (7z) by unblob based extractor.
Multiple issues were identified in how 7z handles CPIO: - processing of CPIO archives depends on the file name, and the rules are not explicit (name.cpio is OK, name.cpio.truncated is OK, but name.cpio.ext is not) - special device files (e.g. block devices, character devices) are extracted as empty files rather than created using mknod We therefore decided to implement a CPIO extractor based on unblob's Extractor. Since CPIO has so many different format, each format has its own extractor: - binary CPIO (bin)- BinaryCPIOExtractor - portable ASCII CPIO (odc) - PortableOldASCIIExtractor - portable ASCII CPIO (newc) - PortableASCIIExtractor - portable ASCII with CRC (crc) - PortableASCIIWithCRCExtractor Each extractor use a different parser, adapted to the format.
- Loading branch information