diff -Naur old-mksquashfs/mksquashfs.c mksquashfs/mksquashfs.c --- a/squashfs-tools/mksquashfs.c 2006-08-16 23:48:05.000000000 +0100 +++ b/squashfs-tools/mksquashfs.c 2006-08-16 23:50:18.000000000 +0100 @@ -985,7 +985,7 @@ } for(i = 0; i < meta_blocks; i++) { - int avail_bytes = i == meta_blocks - 1 ? frag_bytes % SQUASHFS_METADATA_SIZE : SQUASHFS_METADATA_SIZE; + int avail_bytes = frag_bytes > SQUASHFS_METADATA_SIZE ? SQUASHFS_METADATA_SIZE : frag_bytes; c_byte = mangle(cbuffer + block_offset, buffer + i * SQUASHFS_METADATA_SIZE , avail_bytes, SQUASHFS_METADATA_SIZE, noF, 0); if(!swap) memcpy(cbuffer, &c_byte, sizeof(unsigned short)); @@ -997,6 +997,7 @@ compressed_size = SQUASHFS_COMPRESSED_SIZE(c_byte) + block_offset; write_bytes(fd, bytes, compressed_size, cbuffer); bytes += compressed_size; + frag_bytes -= avail_bytes; } if(!swap) @@ -1791,7 +1792,7 @@ #define VERSION() \ - printf("mksquashfs version 3.0 (2006/03/15)\n");\ + printf("mksquashfs version 3.0-patched (2006//08/16)\n");\ printf("copyright (C) 2006 Phillip Lougher \n\n"); \ printf("This program is free software; you can redistribute it and/or\n");\ printf("modify it under the terms of the GNU General Public License\n");\