Submitted By:            Nathan Coulson <conathan_at_gmail_dot_com>
Date:                    2011-09-04
Initial Package Version: rev d4a253c
Upstream Status:         submitted in original patch
                         https://github.com/eyepatch/libdmg-hfsplus/commit/5237131933a6d11b4f32baae4577e01553d1aa5a
                         Large Files reported at https://github.com/planetbeing/libdmg-hfsplus/issues/3
Description:             Adapted from Andrew Burley's patch, added bufferRead.
                         Adapted from throwaway's bug report.  Fix for large files
diff -Naur planetbeing-libdmg-hfsplus-d4a253c.orig/dmg/dmgfile.c planetbeing-libdmg-hfsplus-d4a253c/dmg/dmgfile.c
--- planetbeing-libdmg-hfsplus-d4a253c.orig/dmg/dmgfile.c	2010-03-07 05:49:54.000000000 -0800
+++ planetbeing-libdmg-hfsplus-d4a253c/dmg/dmgfile.c	2011-09-04 12:51:33.313142164 -0700
@@ -11,6 +11,7 @@
 #include <dmg/dmgfile.h>
 
 static void cacheRun(DMG* dmg, BLKXTable* blkx, int run) {
+	size_t bufferRead;
 	size_t bufferSize;
 	z_stream strm;
 	void* inBuffer;
diff -Naur planetbeing-libdmg-hfsplus-d4a253c.orig/dmg/io.c planetbeing-libdmg-hfsplus-d4a253c/dmg/io.c
--- planetbeing-libdmg-hfsplus-d4a253c.orig/dmg/io.c	2010-03-07 05:49:54.000000000 -0800
+++ planetbeing-libdmg-hfsplus-d4a253c/dmg/io.c	2011-09-04 12:53:19.984795715 -0700
@@ -140,6 +140,7 @@
 #define DEFAULT_BUFFER_SIZE (1 * 1024 * 1024)
 
 void extractBLKX(AbstractFile* in, AbstractFile* out, BLKXTable* blkx) {
+	size_t bufferRead;
 	unsigned char* inBuffer;
 	unsigned char* outBuffer;
 	unsigned char zero;
@@ -183,6 +184,7 @@
 		
 		switch(blkx->runs[i].type) {
 		        case BLOCK_ADC:
+				bufferRead=0;
 				do {
 					ASSERT((strm.avail_in = in->read(in, inBuffer, blkx->runs[i].compLength)) == blkx->runs[i].compLength, "fread");
 					strm.avail_out = adc_decompress(strm.avail_in, inBuffer, bufferSize, outBuffer, &have);
diff -Naur planetbeing-libdmg-hfsplus-d4a253c.orig/includes/dmg/dmg.h planetbeing-libdmg-hfsplus-d4a253c/includes/dmg/dmg.h
--- planetbeing-libdmg-hfsplus-d4a253c.orig/includes/dmg/dmg.h	2010-03-07 05:49:54.000000000 -0800
+++ planetbeing-libdmg-hfsplus-d4a253c/includes/dmg/dmg.h	2011-09-04 12:58:33.534954461 -0700
@@ -256,7 +256,7 @@
 	ASSERT(file->write(file, &data, sizeof(data)) == sizeof(data), "fwrite");
 }
 
-static inline uint32_t readUInt64(AbstractFile* file) {
+static inline uint64_t readUInt64(AbstractFile* file) {
 	uint64_t data;
 	
 	ASSERT(file->read(file, &data, sizeof(data)) == sizeof(data), "fread");
