Ignore:
Timestamp:
2009-09-15T11:01:27+02:00 (7 years ago)
Author:
matteo
Message:

fix error in mksquashfs4 when data can't be compressed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/squashfs4/patches/110-lzma.patch

    r15884 r17585  
    1 --- a/squashfs-tools/mksquashfs.c 
    2 +++ b/squashfs-tools/mksquashfs.c 
     1Index: squashfs4.0/squashfs-tools/mksquashfs.c 
     2=================================================================== 
     3--- squashfs4.0.orig/squashfs-tools/mksquashfs.c        2009-04-05 23:22:48.000000000 +0200 
     4+++ squashfs4.0/squashfs-tools/mksquashfs.c     2009-09-14 17:21:46.210480446 +0200 
    35@@ -64,6 +64,18 @@ 
    46 #include "global.h" 
     
    2022 #ifdef SQUASHFS_TRACE 
    2123 #define TRACE(s, args...)      do { \ 
    22 @@ -830,6 +842,19 @@ void sigalrm_handler() 
     24@@ -830,6 +842,19 @@ 
    2325        rotate = (rotate + 1) % 4; 
    2426 } 
     
    4042 unsigned int mangle2(z_stream **strm, char *d, char *s, int size, 
    4143        int block_size, int uncompressed, int data_block) 
    42 @@ -841,6 +866,48 @@ unsigned int mangle2(z_stream **strm, ch 
     44@@ -841,6 +866,50 @@ 
    4345        if(uncompressed) 
    4446                goto notcompressed; 
     
    7678+                       BAD_ERROR("lzma::compress failed, invalid parameters\n"); 
    7779+                       break; 
     80+               case SZ_ERROR_OUTPUT_EOF: 
     81+                       goto notcompressed; 
    7882+               /* should not happen */ 
    7983+               default: 
    80 +                       BAD_ERROR("lzma::compress failed, unknown error\n"); 
     84+                       BAD_ERROR("lzma::compress failed, unknown error (%d)\n", res); 
    8185+                       break; 
    8286+               } 
     
    8993                if((stream = *strm = malloc(sizeof(z_stream))) == NULL) 
    9094                        BAD_ERROR("mangle::compress failed, not enough " 
    91 @@ -1669,17 +1736,17 @@ struct file_buffer *get_fragment(struct  
     95@@ -1669,17 +1738,17 @@ 
    9296                else 
    9397                        data = read_from_disk(start_block, size); 
     
    111115                } 
    112116        } else if(compressed_buffer) 
    113 @@ -4282,6 +4349,10 @@ int main(int argc, char *argv[]) 
     117@@ -4282,6 +4351,10 @@ 
    114118                                        argv[0]); 
    115119                                exit(1); 
     
    122126                        if(++i == argc) { 
    123127                                ERROR("%s: -ef missing filename\n", argv[0]); 
    124 @@ -4410,6 +4481,9 @@ printOptions: 
     128@@ -4410,6 +4483,9 @@ 
    125129                        ERROR("-b <block_size>\t\tset data block to " 
    126130                                "<block_size>.  Default %d bytes\n", 
     
    132136                                "  By default will use number of\n"); 
    133137                        ERROR("\t\t\tprocessors available\n"); 
    134 @@ -4804,7 +4878,7 @@ restore_filesystem: 
     138@@ -4804,7 +4880,7 @@ 
    135139        sBlk.bytes_used = bytes; 
    136140  
     
    141145        /* Xattrs are not currently supported */ 
    142146        sBlk.xattr_table_start = SQUASHFS_INVALID_BLK; 
    143 --- a/squashfs-tools/squashfs_fs.h 
    144 +++ b/squashfs-tools/squashfs_fs.h 
    145 @@ -229,6 +229,7 @@ typedef long long           squashfs_block_t; 
     147Index: squashfs4.0/squashfs-tools/squashfs_fs.h 
     148=================================================================== 
     149--- squashfs4.0.orig/squashfs-tools/squashfs_fs.h       2009-03-18 03:50:20.000000000 +0100 
     150+++ squashfs4.0/squashfs-tools/squashfs_fs.h    2009-09-14 17:20:36.310480350 +0200 
     151@@ -229,6 +229,7 @@ 
    146152 typedef long long              squashfs_inode_t; 
    147153  
     
    151157 struct squashfs_super_block { 
    152158        unsigned int            s_magic; 
    153 --- a/squashfs-tools/Makefile 
    154 +++ b/squashfs-tools/Makefile 
    155 @@ -4,14 +4,20 @@ INCLUDEDIR = . 
     159Index: squashfs4.0/squashfs-tools/Makefile 
     160=================================================================== 
     161--- squashfs4.0.orig/squashfs-tools/Makefile    2009-04-05 04:03:36.000000000 +0200 
     162+++ squashfs4.0/squashfs-tools/Makefile 2009-09-14 17:20:36.310480350 +0200 
     163@@ -4,14 +4,20 @@ 
    156164  
    157165 CFLAGS := -I$(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -O2 
     
    178186 sort.o: sort.c squashfs_fs.h global.h sort.h Makefile 
    179187  
    180 @@ -19,18 +25,20 @@ swap.o: swap.c Makefile 
     188@@ -19,18 +25,20 @@ 
    181189  
    182190 pseudo.o: pseudo.c pseudo.h Makefile 
     
    206214 clean: 
    207215        -rm -f *.o mksquashfs unsquashfs 
    208 --- a/squashfs-tools/read_fs.c 
    209 +++ b/squashfs-tools/read_fs.c 
    210 @@ -51,6 +51,7 @@ extern unsigned int get_guid(unsigned in 
     216Index: squashfs4.0/squashfs-tools/read_fs.c 
     217=================================================================== 
     218--- squashfs4.0.orig/squashfs-tools/read_fs.c   2009-03-31 06:23:14.000000000 +0200 
     219+++ squashfs4.0/squashfs-tools/read_fs.c        2009-09-14 17:20:36.310480350 +0200 
     220@@ -51,6 +51,7 @@ 
    211221 #include "squashfs_swap.h" 
    212222 #include "read_fs.h" 
     
    216226 #include <stdlib.h> 
    217227  
    218 @@ -83,17 +84,17 @@ int read_block(int fd, long long start,  
     228@@ -83,17 +84,17 @@ 
    219229                c_byte = SQUASHFS_COMPRESSED_SIZE(c_byte); 
    220230                read_destination(fd, start + offset, c_byte, buffer); 
     
    239249                        return 0; 
    240250                } 
    241 --- a/squashfs-tools/unsquashfs.c 
    242 +++ b/squashfs-tools/unsquashfs.c 
     251Index: squashfs4.0/squashfs-tools/unsquashfs.c 
     252=================================================================== 
     253--- squashfs4.0.orig/squashfs-tools/unsquashfs.c        2009-04-05 23:23:06.000000000 +0200 
     254+++ squashfs4.0/squashfs-tools/unsquashfs.c     2009-09-14 17:20:36.310480350 +0200 
    243255@@ -24,6 +24,7 @@ 
    244256 #include "unsquashfs.h" 
     
    249261  
    250262 struct cache *fragment_cache, *data_cache; 
    251 @@ -597,18 +598,17 @@ int read_block(long long start, long lon 
     263@@ -597,18 +598,17 @@ 
    252264                if(read_bytes(start + offset, c_byte, buffer) == FALSE) 
    253265                        goto failed; 
     
    272284                        goto failed; 
    273285                } 
    274 @@ -645,18 +645,17 @@ int read_data_block(long long start, uns 
     286@@ -645,18 +645,17 @@ 
    275287                if(read_bytes(start, c_byte, data) == FALSE) 
    276288                        goto failed; 
     
    295307                        goto failed; 
    296308                } 
    297 @@ -1459,7 +1458,7 @@ int read_super(char *source) 
     309@@ -1459,7 +1458,7 @@ 
    298310                s_ops.read_inode = read_inode_4; 
    299311                s_ops.read_uids_guids = read_uids_guids_4; 
     
    304316  
    305317        /* 
    306 @@ -1548,6 +1547,9 @@ int read_super(char *source) 
     318@@ -1548,6 +1547,9 @@ 
    307319                goto failed_mount; 
    308320        } 
     
    314326  
    315327 failed_mount: 
    316 @@ -1710,19 +1712,19 @@ void *deflator(void *arg) 
     328@@ -1710,19 +1712,19 @@ 
    317329                int res; 
    318330                unsigned long bytes = block_size; 
     
    338350                } else 
    339351                        memcpy(entry->data, tmp, bytes); 
    340 --- a/squashfs-tools/mksquashfs.h 
    341 +++ b/squashfs-tools/mksquashfs.h 
     352Index: squashfs4.0/squashfs-tools/mksquashfs.h 
     353=================================================================== 
     354--- squashfs4.0.orig/squashfs-tools/mksquashfs.h        2009-02-19 19:31:08.000000000 +0100 
     355+++ squashfs4.0/squashfs-tools/mksquashfs.h     2009-09-14 17:20:36.310480350 +0200 
    342356@@ -41,4 +41,9 @@ 
    343357 #define SQUASHFS_SWAP_LONG_LONGS(s, d, n) \ 
     
    350364+ 
    351365 #endif 
    352 --- /dev/null 
    353 +++ b/squashfs-tools/uncompress.c 
     366Index: squashfs4.0/squashfs-tools/uncompress.c 
     367=================================================================== 
     368--- /dev/null   1970-01-01 00:00:00.000000000 +0000 
     369+++ squashfs4.0/squashfs-tools/uncompress.c     2009-09-14 17:20:36.310480350 +0200 
    354370@@ -0,0 +1,58 @@ 
    355371+/* 
     
    411427+ 
    412428+ 
    413 --- /dev/null 
    414 +++ b/squashfs-tools/uncompress.h 
     429Index: squashfs4.0/squashfs-tools/uncompress.h 
     430=================================================================== 
     431--- /dev/null   1970-01-01 00:00:00.000000000 +0000 
     432+++ squashfs4.0/squashfs-tools/uncompress.h     2009-09-14 17:20:36.310480350 +0200 
    415433@@ -0,0 +1,29 @@ 
    416434+/* 
Note: See TracChangeset for help on using the changeset viewer.