Change memcpy to memmove.

If an inode is large (>16K) it will cause the src and dest pointers
to overlap in the data cache memcpy, potentially leading to block_list
corruption/truncation.

http://squashfs.cvs.sourceforge.net/viewvc/squashfs/squashfs/squashfs-tools/mksquashfs.c?r1=1.196&r2=1.197

https://github.com/plougher/squashfs-tools/commit/cc909d387484cd88318ded49030a7ceac61c40e5

--- squashfs-tools/mksquashfs.c
+++ squashfs-tools/mksquashfs.c
@@ -887,7 +887,7 @@
 			*((unsigned char *)(inode_table + inode_bytes + block_offset - 1)) = SQUASHFS_MARKER_BYTE;
 		inode_bytes += SQUASHFS_COMPRESSED_SIZE(c_byte) + block_offset;
 		total_inode_bytes += SQUASHFS_METADATA_SIZE + block_offset;
-		memcpy(data_cache, data_cache + SQUASHFS_METADATA_SIZE, cache_bytes - SQUASHFS_METADATA_SIZE);
+		memmove(data_cache, data_cache + SQUASHFS_METADATA_SIZE, cache_bytes - SQUASHFS_METADATA_SIZE);
 		cache_bytes -= SQUASHFS_METADATA_SIZE;
 	}
 
@@ -1400,7 +1400,7 @@
 			*((unsigned char *)(directory_table + directory_bytes + block_offset - 1)) = SQUASHFS_MARKER_BYTE;
 		directory_bytes += SQUASHFS_COMPRESSED_SIZE(c_byte) + block_offset;
 		total_directory_bytes += SQUASHFS_METADATA_SIZE + block_offset;
-		memcpy(directory_data_cache, directory_data_cache + SQUASHFS_METADATA_SIZE, directory_cache_bytes - SQUASHFS_METADATA_SIZE);
+		memmove(directory_data_cache, directory_data_cache + SQUASHFS_METADATA_SIZE, directory_cache_bytes - SQUASHFS_METADATA_SIZE);
 		directory_cache_bytes -= SQUASHFS_METADATA_SIZE;
 	}
 
