--- dmg2john.c.orig	2013-01-25 02:10:28.200855524 +0000
+++ dmg2john.c	2013-01-29 00:51:44.365180326 +0000
@@ -130,9 +130,9 @@ static void hash_plugin_parse_hash(char
 
 		chunk_size = header2.blocksize;
 		lseek(fd, header2.dataoffset, SEEK_SET);
-		cno = ceil(header2.datasize / 4096.0) - 2;
+		cno = ((header2.datasize + 4095ULL) / 4096) - 2;
 		chunk = (unsigned char *) malloc(header2.datasize);
-		data_size = header2.datasize - cno * 4096;
+		data_size = header2.datasize - cno * 4096ULL;
 		if (data_size < 0) {
 			fprintf(stderr, "File %s is not a valid DMG file!\n", filename);
 			return;