From 8ade4e21303eb4feed76a9d8b26545f65dcc708a Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 23 Sep 2012 16:06:47 -0500 Subject: [PATCH] Update libisofs to read files greater than 2GB This partially resolves Bug 1111 --- libk3b/tools/k3biso9660.cpp | 2 +- libk3b/tools/k3biso9660.h | 4 ++-- libk3b/tools/libisofs/isofs.cpp | 2 +- libk3b/tools/libisofs/isofs.h | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libk3b/tools/k3biso9660.cpp b/libk3b/tools/k3biso9660.cpp index 45e2d12..f6ddea1 100644 --- a/libk3b/tools/k3biso9660.cpp +++ b/libk3b/tools/k3biso9660.cpp @@ -32,7 +32,7 @@ /* callback function for libisofs */ -int K3bIso9660::read_callback( char* buf, sector_t start, int len, void* udata ) +int K3bIso9660::read_callback( char* buf, sector_t start, long long len, void* udata ) { K3bIso9660* isoF = static_cast(udata); diff --git a/libk3b/tools/k3biso9660.h b/libk3b/tools/k3biso9660.h index 246fb67..c25ef48 100644 --- a/libk3b/tools/k3biso9660.h +++ b/libk3b/tools/k3biso9660.h @@ -38,7 +38,7 @@ struct iso_directory_record; struct el_torito_boot_descriptor; struct iso_primary_descriptor; -typedef long sector_t; +typedef long long sector_t; @@ -437,7 +437,7 @@ class LIBK3B_EXPORT K3bIso9660 int m_joliet; // only used for creation - static int read_callback( char* buf, sector_t start, int len, void* udata ); + static int read_callback( char* buf, sector_t start, long long len, void* udata ); static int isofs_callback( struct iso_directory_record* idr, void *udata ); K3bIso9660Directory *dirent; bool m_rr; diff --git a/libk3b/tools/libisofs/isofs.cpp b/libk3b/tools/libisofs/isofs.cpp index e5c871b..65f19eb 100644 --- a/libk3b/tools/libisofs/isofs.cpp +++ b/libk3b/tools/libisofs/isofs.cpp @@ -121,7 +121,7 @@ void FreeBootTable(boot_head *boot) { boot->defentry=NULL; } -int BootImageSize(readfunc* read,int media,sector_t start,int len,void* udata) { +int BootImageSize(readfunc* read,int media,sector_t start,long long len,void* udata) { int ret; switch(media & 0xf) { diff --git a/libk3b/tools/libisofs/isofs.h b/libk3b/tools/libisofs/isofs.h index f284903..8dde726 100644 --- a/libk3b/tools/libisofs/isofs.h +++ b/libk3b/tools/libisofs/isofs.h @@ -23,7 +23,7 @@ #include "iso_fs.h" #include "el_torito.h" -typedef long sector_t; +typedef long long sector_t; typedef struct _rr_entry { int len; /* length of structure */ @@ -48,7 +48,7 @@ typedef struct _rr_entry { int re; /* relocated */ char z_algo[2]; /* zizofs algorithm */ char z_params[2]; /* zizofs parameters */ - int z_size; /* zizofs real_size */ + long long z_size; /* zizofs real_size */ } rr_entry; typedef struct _iso_vol_desc { @@ -74,7 +74,7 @@ typedef struct _boot_head { /** * this callback function needs to read 'len' sectors from 'start' into 'buf' */ -typedef int readfunc(char *buf,sector_t start, int len,void *); +typedef int readfunc(char *buf,sector_t start, long long len,void *); /** * ProcessDir uses this callback @@ -135,7 +135,7 @@ int JolietLevel(struct iso_volume_descriptor *ivd); /** * Returns the size of the boot image (in 512 byte sectors) */ -int BootImageSize(readfunc *read,int media,sector_t start,int len,void *udata); +int BootImageSize(readfunc *read,int media,sector_t start,long long len,void *udata); /** * Frees the boot catalog entries in 'boot'. If you ever called ReadBootTable,