From: Thomas Bittermann Subject: handle larger than 4GB isos Origin: vendor, http://koji.fedoraproject.org/koji/buildinfo?buildID=149397 Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=440436 --- src/isofs.c | 6 +++--- src/isofs.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) --- fuseiso.orig/src/isofs.c +++ fuseiso/src/isofs.c @@ -178,7 +178,7 @@ int isofs_real_preinit( char* imagefile, context.data_size = isonum_723(context.pd.logical_block_size); if(!context.block_size) { - fprintf(stderr, "init: wrong block data size %d, using default 2048\n", context.data_size); + fprintf(stderr, "init: wrong block data size %Lu, using default 2048\n", context.data_size); context.data_size = 2048; }; @@ -324,7 +324,7 @@ void* isofs_real_init() { if(context.block_size != 2048) { // report unusual data block size - printf("Data block size: %d\n", context.block_size); + printf("Data block size: %Lu\n", context.block_size); }; char buf[129]; @@ -479,7 +479,7 @@ static int isofs_read_raw_block(int bloc }; size_t len = read(context.fd, buf, context.data_size); if(len != context.data_size) { - fprintf(stderr, "isofs_read_raw_block: can`t read full block, read only %d bytes from offset %d, %d required; errno %d, message %s\n", + fprintf(stderr, "isofs_read_raw_block: can`t read full block, read only %d bytes from offset %d, %Lu required; errno %d, message %s\n", len, (int) off, context.data_size, errno, strerror(errno)); fprintf(stderr, "isofs_read_raw_block: huh? reading zeros beyond file end? someone want to save a penny?\n"); memset(buf + len, 0, context.data_size - len); --- fuseiso.orig/src/isofs.h +++ fuseiso/src/isofs.h @@ -38,9 +38,9 @@ typedef struct _isofs_context { struct iso_directory_record *root; int file_offset; // offset to begin of useful data (for .nrg files) int id_offset; // offset to CD001 inside file - size_t block_size; // raw block size - size_t block_offset; // offset from block start to data - size_t data_size; // data size inside block + off_t block_size; // raw block size + off_t block_offset; // offset from block start to data + off_t data_size; // data size inside block int susp; // parse susp entries int susp_skip; // skip bytes from susp SP entry int joliet_level; // joliet extension level (1, 2 or 3)