1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
Description: handle larger than 4GB isos
Author: Thomas Bittermann
Origin: vendor, http://koji.fedoraproject.org/koji/buildinfo?buildID=149397
Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=440436
Forwarded: not-needed
Last-Update: 2024-09-16
--- 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)
|