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