[Bug 1475250] Re: [isoinfo] could not extract large files

Taihsiang Ho taihsiang.ho at canonical.com
Thu Jul 16 14:09:47 UTC 2015


in this case,
len is negative so the program does not begin to extract data in the while loop.


cdrkit-1.1.11/genisoimage/diag/isoinfo.c


 631 extract_file(struct iso_directory_record *idr)
 632 {
 633     int     extent, len, tlen;
 634     unsigned char   buff[2048];
 635 
 636 #if defined(__CYGWIN32__) || defined(__CYGWIN__) || defined(__EMX__) || defined(__DJGPP__)
 637     setmode(fileno(stdout), O_BINARY);
 638 #endif
 639 
 640     extent = isonum_733((unsigned char *)idr->extent);                                                                                                                                                  
 641     len = isonum_733((unsigned char *)idr->size);
 642 
 643     while (len > 0) {
 644 #ifdef  USE_SCG
 645         readsecs(extent - sector_offset, buff, ISO_BLOCKS(sizeof (buff)));
 646         tlen = (len > sizeof (buff) ? sizeof (buff) : len);
 647 #else
 648         lseek(fileno(infile), ((off_t)(extent - sector_offset)) << 11, SEEK_SET);
 649         tlen = (len > sizeof (buff) ? sizeof (buff) : len);
 650         read(fileno(infile), buff, tlen);
 651 #endif
 652         len -= tlen;
 653         extent++;
 654         write(STDOUT_FILENO, buff, tlen); /* FIXME: check return value */
 655     }
 656 }


(gdb) print len
$1 = -1565868032

-- 
You received this bug notification because you are a member of Ubuntu
Burning Team, which is subscribed to cdrkit in Ubuntu.
https://bugs.launchpad.net/bugs/1475250

Title:
  [isoinfo] could not extract large files

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cdrkit/+bug/1475250/+subscriptions



More information about the Ubuntu-burning mailing list