summaryrefslogtreecommitdiffstats
path: root/redhat/kdelibs/kdelibs-3.5.13-fix_iso_kioslave_not_parsing_large_image_properly.patch
diff options
context:
space:
mode:
Diffstat (limited to 'redhat/kdelibs/kdelibs-3.5.13-fix_iso_kioslave_not_parsing_large_image_properly.patch')
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-fix_iso_kioslave_not_parsing_large_image_properly.patch171
1 files changed, 171 insertions, 0 deletions
diff --git a/redhat/kdelibs/kdelibs-3.5.13-fix_iso_kioslave_not_parsing_large_image_properly.patch b/redhat/kdelibs/kdelibs-3.5.13-fix_iso_kioslave_not_parsing_large_image_properly.patch
new file mode 100644
index 000000000..f55310ed8
--- /dev/null
+++ b/redhat/kdelibs/kdelibs-3.5.13-fix_iso_kioslave_not_parsing_large_image_properly.patch
@@ -0,0 +1,171 @@
+commit b4bba7b553995a6b13214dbbabe18ff311007eea
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1341113466 -0500
+
+ Fix iso kioslave not parsing large images properly
+
+diff --git a/kioslave/iso/kiso.cpp b/kioslave/iso/kiso.cpp
+index c6faa65..6403f62 100644
+--- a/kioslave/iso/kiso.cpp
++++ b/kioslave/iso/kiso.cpp
+@@ -188,7 +188,7 @@ KIso::~KIso()
+ }
+
+ /* callback function for libisofs */
+-static int readf(char *buf, int start, int len,void *udata) {
++static int readf(char *buf, long start, long len,void *udata) {
+
+ TQIODevice* dev = ( static_cast<KIso*> (udata) )->device();
+
+@@ -212,7 +212,7 @@ static int mycallb(struct iso_directory_record *idr,void *udata) {
+ bool special=false;
+ KArchiveEntry *entry=NULL,*oldentry=NULL;
+ char z_algo[2],z_params[2];
+- int z_size=0;
++ long long z_size=0;
+
+ if ((idr->flags[0] & 1) && !iso->showhidden) return 0;
+ if (iso->level) {
+@@ -289,7 +289,8 @@ static int mycallb(struct iso_directory_record *idr,void *udata) {
+
+ void KIso::addBoot(struct el_torito_boot_descriptor* bootdesc) {
+
+- int i,size;
++ int i;
++ long long size;
+ boot_head boot;
+ boot_entry *be;
+ TQString path;
+diff --git a/kioslave/iso/kisofile.cpp b/kioslave/iso/kisofile.cpp
+index afac16b..ffae0d3 100644
+--- a/kioslave/iso/kisofile.cpp
++++ b/kioslave/iso/kisofile.cpp
+@@ -20,7 +20,7 @@
+
+ KIsoFile::KIsoFile( KArchive* archive, const TQString& name, int access,
+ int date, int adate,int cdate, const TQString& user, const TQString& group,
+- const TQString& symlink,int pos, int size) :
++ const TQString& symlink,long long pos, long long size) :
+ KArchiveFile(archive, name, access, date, user, group, symlink, pos, size) {
+
+
+@@ -32,7 +32,7 @@ KIsoFile::KIsoFile( KArchive* archive, const TQString& name, int access,
+ KIsoFile::~KIsoFile(){
+ }
+
+-void KIsoFile::setZF(char algo[2],char parms[2],int realsize) {
++void KIsoFile::setZF(char algo[2],char parms[2],long long realsize) {
+ m_algo[0]=algo[0];m_algo[1]=algo[1];
+ m_parms[0]=parms[0];m_parms[1]=parms[1];
+ m_realsize=realsize;
+diff --git a/kioslave/iso/kisofile.h b/kioslave/iso/kisofile.h
+index 193509c..696a8c1 100644
+--- a/kioslave/iso/kisofile.h
++++ b/kioslave/iso/kisofile.h
+@@ -29,9 +29,9 @@ class KIsoFile : public KArchiveFile {
+ public:
+ KIsoFile( KArchive* archive, const TQString& name, int access, int date,
+ int adate,int cdate, const TQString& user, const TQString& group,
+- const TQString& symlink, int pos, int size);
++ const TQString& symlink, long long pos, long long size);
+ ~KIsoFile();
+- void setZF(char algo[2],char parms[2],int realsize);
++ void setZF(char algo[2],char parms[2],long long realsize);
+ int adate() const { return m_adate; }
+ int cdate() const { return m_cdate; }
+ long long realsize() const { return m_realsize; }
+diff --git a/kioslave/iso/libisofs/isofs.c b/kioslave/iso/libisofs/isofs.c
+index ab13d9e..e599450 100644
+--- a/kioslave/iso/libisofs/isofs.c
++++ b/kioslave/iso/libisofs/isofs.c
+@@ -122,8 +122,8 @@ void FreeBootTable(boot_head *boot) {
+ boot->defentry=NULL;
+ }
+
+-int BootImageSize(int media,int len) {
+- int ret;
++int BootImageSize(int media,long len) {
++ long long ret;
+
+ switch(media & 0xf) {
+ case 0:
+@@ -158,7 +158,7 @@ static boot_entry *CreateBootEntry(char *be) {
+ return entry;
+ }
+
+-int ReadBootTable(readfunc *read,int sector, boot_head *head, void *udata) {
++int ReadBootTable(readfunc *read,long sector, boot_head *head, void *udata) {
+
+ char buf[2048], *c, *be;
+ int i,end=0;
+@@ -221,7 +221,7 @@ err:
+ /**
+ * Creates the linked list of the volume descriptors
+ */
+-iso_vol_desc *ReadISO9660(readfunc *read,int sector,void *udata) {
++iso_vol_desc *ReadISO9660(readfunc *read,long sector,void *udata) {
+
+ int i;
+ struct iso_volume_descriptor buf;
+@@ -577,10 +577,10 @@ int level=0,joliet=0,dirs,files;
+ iconv_t iconv_d;
+ int fd;
+
+-int readf(char *buf, int start, int len,void *udata) {
++int readf(char *buf, long start, long len,void *udata) {
+ int ret;
+
+- if ((ret=lseek(fd, start << 11, SEEK_SET))<0) return ret;
++ if ((ret=lseek64(fd, start << 11, SEEK_SET))<0) return ret;
+ ret=read(fd, buf, len << 11);
+ if (ret<0) return ret;
+ return (ret >> 11);
+diff --git a/kioslave/iso/libisofs/isofs.h b/kioslave/iso/libisofs/isofs.h
+index 52190e6..b8971a4 100644
+--- a/kioslave/iso/libisofs/isofs.h
++++ b/kioslave/iso/libisofs/isofs.h
+@@ -50,7 +50,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 z_size; /* zizofs real_size */
+ } rr_entry;
+
+ typedef struct _iso_vol_desc {
+@@ -78,7 +78,7 @@ typedef struct _boot_head {
+ /**
+ * this callback function needs to read 'len' sectors from 'start' into 'buf'
+ */
+-typedef int readfunc(char *buf,int start, int len,void *);
++typedef int readfunc(char *buf,long start, long len,void *);
+
+ /**
+ * ProcessDir uses this callback
+@@ -107,7 +107,7 @@ time_t isodate_84261(char * p, int hs);
+ * If the function fails, returns NULL
+ * Don't forget to call FreeISO9660 after using the volume descriptor list!
+ */
+-iso_vol_desc *ReadISO9660(readfunc *read,int sector,void *udata);
++iso_vol_desc *ReadISO9660(readfunc *read,long sector,void *udata);
+
+ /**
+ * Frees the linked list of volume descriptors
+@@ -140,7 +140,7 @@ int JolietLevel(struct iso_volume_descriptor *ivd);
+ /**
+ * Returns the size of the boot image (in 512 byte sectors)
+ */
+-int BootImageSize(int media,int len);
++int BootImageSize(int media,long len);
+
+ /**
+ * Frees the boot catalog entries in 'boot'. If you ever called ReadBootTable,
+@@ -151,7 +151,7 @@ void FreeBootTable(boot_head *boot);
+ /**
+ * Reads the boot catalog into 'head'. Don't forget to call FreeBootTable!
+ */
+-int ReadBootTable(readfunc *read,int sector, boot_head *head, void *udata);
++int ReadBootTable(readfunc *read,long sector, boot_head *head, void *udata);
+
+ #ifdef __cplusplus
+ } //extern "C"