diff options
Diffstat (limited to 'tools/squashfs4/patches/170-add_support_for_LZMA_MAGIC_to_unsqashfs.patch')
-rw-r--r-- | tools/squashfs4/patches/170-add_support_for_LZMA_MAGIC_to_unsqashfs.patch | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/tools/squashfs4/patches/170-add_support_for_LZMA_MAGIC_to_unsqashfs.patch b/tools/squashfs4/patches/170-add_support_for_LZMA_MAGIC_to_unsqashfs.patch deleted file mode 100644 index bc7d6c7a4a..0000000000 --- a/tools/squashfs4/patches/170-add_support_for_LZMA_MAGIC_to_unsqashfs.patch +++ /dev/null @@ -1,72 +0,0 @@ ---- a/squashfs-tools/squashfs_fs.h -+++ b/squashfs-tools/squashfs_fs.h -@@ -30,6 +30,13 @@ - #define SQUASHFS_MAGIC_SWAP 0x68737173 - #define SQUASHFS_START 0 - -+/* -+ * Squashfs + LZMA -+ */ -+ -+#define SQUASHFS_MAGIC_LZMA 0x71736873 -+#define SQUASHFS_MAGIC_LZMA_SWAP 0x73687371 -+ - /* size of metadata (inode and directory) blocks */ - #define SQUASHFS_METADATA_SIZE 8192 - #define SQUASHFS_METADATA_LOG 13 ---- a/squashfs-tools/unsquashfs.c -+++ b/squashfs-tools/unsquashfs.c -@@ -1464,10 +1464,12 @@ int read_super(char *source) - */ - read_fs_bytes(fd, SQUASHFS_START, sizeof(struct squashfs_super_block), - &sBlk_4); -- swap = sBlk_4.s_magic != SQUASHFS_MAGIC; -+ swap = (sBlk_4.s_magic != SQUASHFS_MAGIC && -+ sBlk_4.s_magic != SQUASHFS_MAGIC_LZMA); - SQUASHFS_INSWAP_SUPER_BLOCK(&sBlk_4); - -- if(sBlk_4.s_magic == SQUASHFS_MAGIC && sBlk_4.s_major == 4 && -+ if((sBlk_4.s_magic == SQUASHFS_MAGIC || -+ sBlk_4.s_magic == SQUASHFS_MAGIC_LZMA) && sBlk_4.s_major == 4 && - sBlk_4.s_minor == 0) { - s_ops.squashfs_opendir = squashfs_opendir_4; - s_ops.read_fragment = read_fragment_4; -@@ -1480,7 +1482,11 @@ int read_super(char *source) - /* - * Check the compression type - */ -- comp = lookup_compressor_id(sBlk.s.compression); -+ if (sBlk_4.s_magic == SQUASHFS_MAGIC_LZMA) -+ comp = lookup_compressor("lzma"); -+ else -+ comp = lookup_compressor_id(sBlk.s.compression); -+ - return TRUE; - } - -@@ -1495,8 +1501,10 @@ int read_super(char *source) - * Check it is a SQUASHFS superblock - */ - swap = 0; -- if(sBlk_3.s_magic != SQUASHFS_MAGIC) { -- if(sBlk_3.s_magic == SQUASHFS_MAGIC_SWAP) { -+ if(sBlk_3.s_magic != SQUASHFS_MAGIC && -+ sBlk_3.s_magic != SQUASHFS_MAGIC_LZMA) { -+ if(sBlk_3.s_magic == SQUASHFS_MAGIC_SWAP || -+ sBlk_3.s_magic == SQUASHFS_MAGIC_LZMA_SWAP) { - squashfs_super_block_3 sblk; - ERROR("Reading a different endian SQUASHFS filesystem " - "on %s\n", source); -@@ -1574,7 +1582,11 @@ int read_super(char *source) - /* - * 1.x, 2.x and 3.x filesystems use gzip compression. - */ -- comp = lookup_compressor("gzip"); -+ if (sBlk.s.s_magic == SQUASHFS_MAGIC_LZMA) -+ comp = lookup_compressor("lzma"); -+ else -+ comp = lookup_compressor("gzip"); -+ - return TRUE; - - failed_mount: |